#!/bin/sh # This program will configure the makefile for various OSes. # # Config version 1.1 SYS= # Heading cat > Makefile <> Makefile < [-nocm17a] [-noext0]" echo " Valid system types are linux,sunos,solaris,freebsd,openbsd,netbsd,darwin," echo " sco,aix,sysv,attsvr4,nextstep,osf,generic" echo " If no system type is specified, the output of uname(1) will be used." echo " Switch -nocm17a omits support for the optional CM17A Firecracker device." echo " Switch -noext0 omits support for extended type 0 shutter controllers." rm Makefile exit ;; nocm17a|-nocm17a|NOCM17A|-NOCM17A) CM17AFLAG= ;; noext0|-noext0|NOEXT0|-NOEXT0) EXT0FLAG= ;; *) SYS="$1" ;; esac shift done cat <> Makefile case "$SYS" in linux) cat >> Makefile <<-EoF OWNER = root GROUP = root CC ?= gcc CFLAGS += -g -O \$(DFLAGS) -Wall DFLAGS = -DSYSV -DPOSIX -DHAS_ITIMER -DLINUX -DHASSELECT -DHASTZ $CM17AFLAG $EXT0FLAG LIBS = -lm -lc EoF ;; sunos*|solaris) type gcc > /dev/null if [ $? = 0 ] ; then echo "CC ?= gcc" >> Makefile else CC=cc echo "CC ?= cc" >> Makefile fi cat >> Makefile <<-EoF OWNER = root GROUP = sys DFLAGS = -DSYSV -DPOSIX -DSOLARIS -DLOCKDIR=\"/var/spool/locks\" -DHASSELECT -DHASTZ $CM17AFLAG $EXT0FLAG CFLAGS += -g -O \$(DFLAGS) -Wall LIBS = -lm -lc -lrt EoF ;; freebsd) cat >> Makefile <<-EoF OWNER = root GROUP = wheel CC ?= gcc CFLAGS += -g -O \$(DFLAGS) -Wall LIBS = -lm -lc DFLAGS= -DPOSIX -DHASSELECT -DNEEDGTIME -DFREEBSD -DLOCKDIR=\"/var/spool/lock\" -DSYSBASEDIR=\"/usr/local/etc/heyu\" -DSPOOLDIR=\"/var/tmp/heyu\" $CM17AFLAG $EXT0FLAG EoF ;; openbsd) cat >> Makefile <<-EoF OWNER = root GROUP = wheel CC ?= gcc CFLAGS += -g -O \$(DFLAGS) -Wall LIBS = -lm -lc DFLAGS= -DHASSELECT -DNEEDGTIME -DOPENBSD -DLOCKDIR=\"/var/spool/lock\" -DSYSBASEDIR=\"/etc/heyu\" -DSPOOLDIR=\"/var/tmp/heyu\" $CM17AFLAG $EXT0FLAG EoF ;; netbsd) cat >> Makefile <<-EoF OWNER= root GROUP = wheel DFLAGS = -DPOSIX -DNETBSD -DHASSELECT -DLOCKDIR=\"/var/spool/lock\" $CM17AFLAG $EXT0FLAG CC ?= gcc CFLAGS += -g -O \$(DFLAGS) -Wall LIBS = -lm -lc EoF ;; darwin) cat >> Makefile <<-EoF OWNER = root GROUP = wheel DFLAGS = -DDARWIN -DHASSELECT $CM17AFLAG $EXT0FLAG CC ?= gcc CFLAGS += -g -O \$(DFLAGS) -Wall LIBS = -lm -lc EoF ;; sco*) CC=cc cat >> Makefile <<-EoF OWNER = root GROUP = sys CC ?= cc MAN = /usr/local/man/man.1 MAN5 = /usr/local/man/man.5 CFLAGS += -O \$(DFLAGS) LIBS = -lm -lc -lsocket DFLAGS= -DSYSV -DHASSELECT -DSCO -DLOCKDIR=\"/var/spool/locks\" -DSPOOLDIR=\"/usr/tmp/heyu\" $CM17AFLAG $EXT0FLAG EoF ;; aix|sysv) cat >> Makefile <<-EoF OWNER = root GROUP = sys CC ?= gcc CFLAGS += -g -O \$(DFLAGS) -Wall LIBS = -lm -lc DFLAGS = -DSYSV -DPOSIX -DNSLEEP $CM17AFLAG $EXT0FLAG EoF ;; attsvr4) CC=cc cat >> Makefile <<-EoF OWNER = root GROUP = sys CC ?= cc CFLAGS += -I/usr/local/include -g -O \$(DFLAGS) LIBS = -lc -L/usr/ucblib -lucb -lm -lgen -lcmd DFLAGS = -DATTSVR4 -DHASTZ -DSYSV -DPOSIX -DLOCKDIR=\"/var/spool/locks\" -DSPOOLDIR=\"/var/spool/heyu\" -DSYSBASEDIR=\"/usr/local/etc/heyu\" $CM17AFLAG $EXT0FLAG EoF ;; nextstep) cat >> Makefile <<-EoF OWNER = root GROUP = sys CC ?= gcc DFLAGS = -DPOSIX $CM17AFLAG $EXT0FLAG CFLAGS += -g \$(DFLAGS) -posix LDFLAGS = -posix LIBS = -lm -lposix EoF ;; osf) cat >> Makefile <<-EoF OWNER = root GROUP = uucp CC ?= gcc CFLAGS += -g \$(DFLAGS) LIBS = -lm -lc DFLAGS = -DSYSV -DHAS_ITIMER -DOSF1 -DLOCKDIR=\"/var/spool/locks\" $CM17AFLAG $EXT0FLAG EoF ;; generic) cat >> Makefile <<-EoF OWNER = root GROUP = sys CC ?= gcc CFLAGS += -g -O \$(DFLAGS) -Wall LIBS = -lm -lc DFLAGS= $CM17AFLAG $EXT0FLAG EoF ;; *) echo "Your system type was not understood. Please try one of " echo "the following". $0 -help exit ;; esac # echo "checking for siginterrupt()" rm -f local.h rm -f testsigi.c testsigi cat > testsigi.c < int main() { int x; x=siginterrupt(SIGALRM,1); return 0; } EoF $CC -o testsigi testsigi.c >/dev/null 2>&1 if [ $? = 0 ] ; then echo "#define HASSIGINT" >> local.h # echo "Using siginterrupt()" # else # echo "Not using siginterrupt()" fi rm -f testsigi.c testsigi # echo "checking for sigaction()" rm -f testsiga.c testsiga cat > testsiga.c < int main() { int x; struct sigaction act, old; x=sigaction(SIGALRM, &act, &old); return 0; } EoF $CC -o testsiga testsiga.c >/dev/null 2>&1 if [ $? = 0 ] ; then echo "#define HASSIGACT" >>local.h # echo "Using sigaction()" # else # echo "Not using sigaction()" fi rm -f testsiga.c testsiga if [ ! -f local.h ] ; then touch local.h fi cat >> Makefile <> Makefile if [ "$SYS" = "sysv" ] ; then echo "The Makefile has been created for sysv, however if" echo "you are running under AT&T SysV r4, please re-run" echo "Configure with the system type parameter attsvr4" else echo "The Makefile has been created for $SYS." fi echo "" echo "Note: If you are upgrading from an earlier version," echo "run 'heyu stop' before proceeding further." echo "" echo "** Now run 'make' as a normal user **" echo ""