modernize configure
[netris.git] / Configure
index 254366509539118bcae013ea0a5070ca9385bb65..2ea6057a958342a79cddcb4c1947365156ab570c 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -1,7 +1,7 @@
 :
 #
-# Netris -- A free networked version of Tetris
-# Copyright (C) 1994,1995  Mark Weaver <Mark_Weaver@brown.edu>
+# Netris -- A free networked version of T*tris
+# Copyright (C) 1994-1996,1999  Mark H. Weaver <mhw@netris.org>
 # 
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 #
-# $Id: Configure,v 1.16 1995/07/11 08:55:42 mhw Exp $
-#
 
 CC="gcc"
-COPT="-g -O"
-CEXTRA=""
+COPT="-O"
+CEXTRA="-m486"
 LEXTRA=""
+CURSES_HACK=false
 
 while [ $# -ge 1 ]; do
        opt="$1"
        shift
        case "$opt" in
                -g)
-                       COPT="-g"
-                       CEXTRA="-Wall -Wstrict-prototypes"
+                       COPT="-g -O0"
+#                      CEXTRA="-Wall -Wstrict-prototypes -m486"
                        ;;
                -O*)
                        COPT="$opt"
@@ -53,6 +52,9 @@ while [ $# -ge 1 ]; do
                        LEXTRA="$1"
                        shift
                        ;;
+               --curses-hack)
+                       CURSES_HACK=true
+                       ;;
                *)
                        cat << "END"
 Usage: ./Configure [options...]
@@ -62,6 +64,7 @@ Usage: ./Configure [options...]
     --copt <opt>: Set C optimization flags
     --cextra <opt>: Set extra C flags
     --lextra <opt>: Set extra linker flags
+    --curses-hack: Disable scroll-optimization for broken curses
 END
                        exit 1
                        ;;
@@ -73,8 +76,12 @@ CFLAGS="$COPT $CEXTRA"
 echo "Checking for libraries"
 echo 'main(){}' > test.c
 LFLAGS=""
-for lib in -lsocket -lnsl -lcurses -ltermcap
-do
+for lib in -lcurses -lncurses; do
+       if $CC $CFLAGS $LEXTRA test.c $lib > /dev/null 2>&1; then
+               LFLAGS="$lib"
+       fi
+done
+for lib in -lsocket -lnsl -ltermcap; do 
        if $CC $CFLAGS $LEXTRA test.c $lib > /dev/null 2>&1; then
                LFLAGS="$LFLAGS $lib"
        fi
@@ -128,104 +135,21 @@ fi
 
 rm -f test.c test.o a.out
 
-ORIG_SOURCES="game- curses- shapes- board- util- inet- robot-"
-GEN_SOURCES="version-"
-SOURCES="$ORIG_SOURCES $GEN_SOURCES"
-
-SRCS="`echo $SOURCES | sed -e s/-/.c/g`"
-OBJS="`echo $SOURCES | sed -e s/-/.o/g`"
-
-DISTFILES="README FAQ COPYING VERSION Configure netris.h sr.c robot_desc"
-DISTFILES="$DISTFILES `echo $ORIG_SOURCES | sed -e s/-/.c/g`"
-
-echo > .depend
-
-echo "Creating Makefile"
-sed -e "s/-LFLAGS-/$LFLAGS/g" -e "s/-SRCS-/$SRCS/g" \
-       -e "s/-OBJS-/$OBJS/g" -e "s/-DISTFILES-/$DISTFILES/g" \
-       -e "s/-COPT-/$COPT/g" -e "s/-CEXTRA-/$CEXTRA/g" \
-       -e "s/-LEXTRA-/$LEXTRA/g" -e "s/-CC-/$CC/g" << "END" > Makefile
-#
-# Automatically generated by ./Configure -- DO NOT EDIT!
-#
-
-CC = -CC-
-COPT = -COPT-
-CEXTRA = -CEXTRA-
-LEXTRA = -LEXTRA-
-LFLAGS = -LEXTRA- -LFLAGS-
-CFLAGS = $(CEXTRA) $(COPT)
-
-PROG = netris
-HEADERS = netris.h
-
-SRCS = -SRCS-
-OBJS = -OBJS-
-DISTFILES = -DISTFILES-
-
-all: Makefile config.h proto.h $(PROG) sr
+echo "Creating config.mak"
+cat > config.mak << END
+### Automatically generated by ./Configure ###
 
-$(PROG): $(OBJS)
-       $(CC) -o $(PROG) $(OBJS) $(LFLAGS)
-
-sr: sr.o
-       $(CC) -o sr sr.o $(LFLAGS)
-
-.c.o:
-       $(CC) $(CFLAGS) -c $<
-
-Makefile config.h: Configure
-       @echo "Makefile and/or config.h is out of date"
-       @echo "Run ./Configure now"
-       @false
-
-version.c: VERSION
-       @echo "Creating version.c"
-       @sed -e 's/^\(.*\)$$/char *version_string = "\1";/' VERSION > $@
-
-proto.h: $(SRCS)
-       @touch $@
-       @mv $@ $@.old
-       @cat $(SRCS) | grep '^ExtFunc[  ]' | sed -e 's/)$$/);/' > $@
-       @if diff $@.old $@ > /dev/null 2>&1; then :; else \
-               echo "proto.h changed"; \
-               touch proto.chg; \
-       fi
-       @rm -f $@.old
-
-depend: proto.h $(SRCS)
-       @echo "Checking dependencies"
-       @sed -n -e '1,/make depend #####$$/p' Makefile > Makefile.new
-       @$(CC) -M $(SRCS) | sed -e 's/proto\.h/proto.chg/g' >> Makefile.new
-       @mv -f Makefile.new Makefile
-
-dist: $(DISTFILES)
-       @vers=`cat VERSION`; \
-       dir="netris-$$vers"; \
-       echo "Creating $$dir directory"; \
-       rm -rf $$dir; \
-       mkdir $$dir; \
-       cp $(DISTFILES) $$dir; \
-       chmod 755 $$dir; \
-       chmod 644 $$dir/*; \
-       chmod 755 $$dir/Configure; \
-       echo "Creating $$dir.tar.gz"; \
-       tar -cvzof $$dir.tar.gz $$dir
-
-clean:
-       rm -f proto.h proto.chg $(PROG) $(OBJS) version.c test.c a.out sr sr.o
-
-cleandir: clean
-       rm -f .depend Makefile config.h
-
-##### DO NOT EDIT OR DELETE THIS LINE, it's needed by make depend #####
+CC = $CC
+COPT = $COPT
+CEXTRA = $CEXTRA
+LEXTRA = $LEXTRA
+LFLAGS = $LEXTRA $LFLAGS
+CFLAGS = \$(CEXTRA) \$(COPT)
 END
 
 echo "Creating config.h"
 cat << END > config.h
-/*
- * Automatically generated by ./Configure -- DO NOT EDIT!
- */
+/*** Automatically generated by ./Configure ***/
 
 END
 
@@ -244,14 +168,13 @@ fi
 if [ "$HAS_SIGPROCMASK" = "true" ]; then
        echo "#define HAS_SIGPROCMASK" >> config.h
 fi
+if [ "$CURSES_HACK" = "true" ]; then
+       echo "#define CURSES_HACK" >> config.h
+fi
 
-echo "Running 'make depend'"
-if make depend; then :; else cat << END; fi
-
-make depend failed, but that's OK unless you're doing development
-END
 cat << END
 
 Now do a 'make'
 
 END
+