From: Joshua Kwan Date: Fri, 18 Jun 2004 17:57:29 +0000 (+0000) Subject: autoconfize X-Git-Tag: v1.6.1-roc-dev~403 X-Git-Url: https://skyeroc.xyz/gitweb/?a=commitdiff_plain;h=8e89cf0e65f3028a53d275d7f1a947fc373e4206;p=dgamelaunch autoconfize git-svn-id: svn://katsu.triplehelix.org/dgamelaunch/trunk@301 db0b04b0-f4d1-0310-9a6d-de3e77497b0e --- diff --git a/Makefile b/Makefile deleted file mode 100644 index c9add46..0000000 --- a/Makefile +++ /dev/null @@ -1,117 +0,0 @@ -VERSION = 1.4.5 -# Hardcoded path to config file -DEFCONFIG = /etc/dgamelaunch.conf -NAME = dgamelaunch -exclusions = CVS .svn .cvsignore tags -PREFIX = /usr -SBINDIR = $(PREFIX)/sbin -ifeq ($(PREFIX),/usr) - MANDIR = $(PREFIX)/share/man -else - MANDIR = $(PREFIX)/man -endif -MAN8 = dgamelaunch.8 - -ifndef optimize - optimize = -O0 -endif - -ifneq (,$(shell which flex 2>/dev/null)) - LEX = flex -else - LEX = lex -endif - -ifneq (,$(shell which bison 2>/dev/null)) - YACC = bison -y -else - YACC = yacc -endif - -ifeq (Linux,$(shell uname -s)) - LUTIL = -lutil -else - ifeq (BSD,$(shell uname -s | sed -e 's/.*BSD/BSD/g')) - LUTIL = -lutil - endif -endif - -ifeq (Darwin,$(shell uname -s)) - LCRYPT = -else - LCRYPT = -lcrypt -endif - -ifeq (1,$(VIRUS)) - EDITOR = virus.c -else - EDITOR = ee.c -endif - -CC = gcc -LDFLAGS = -CFLAGS = -g3 $(optimize) -Wall -Wno-unused $(DEFS) -INSTALL = install -c -DEFS = -DVERSION=\"$(VERSION)\" -DDEFCONFIG=\"$(DEFCONFIG)\" -SRCS = $(EDITOR) dgl-common.c ttyrec.c dgamelaunch.c io.c ttyplay.c mygetnstr.c stripgfx.c strlcpy.c strlcat.c y.tab.c lex.yy.c -EXTRA_SRCS = nethackstub.c -OBJS = $(SRCS:.c=.o) -WALL_OBJS = y.tab.o lex.yy.o dgl-common.o dgl-wall.o strlcat.o strlcpy.o -LIBS = -lcurses $(LCRYPT) $(LUTIL) -ll - -all: $(NAME) dgl-wall - -$(NAME): $(OBJS) - $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) - -dgl-wall: $(WALL_OBJS) - $(CC) $(CFLAGS) -o $@ $(WALL_OBJS) $(LIBS) - -clean: - rm -f $(NAME) nethackstub dgl-wall - rm -f editors/*.o *.o .#* *~ y.tab.* lex.yy.c Makefile.dep - -install: - $(INSTALL) -m 755 $(NAME) $(SBINDIR) - $(INSTALL) -m 644 $(MAN8) $(MANDIR)/man8 - -indent: - indent -nut -ts2 *.c *.h - rm -f *~ - -lex.yy.c: config.l - $(LEX) $< - -y.tab.c y.tab.h: config.y - $(YACC) -d $< - -lex.yy.o: lex.yy.c -y.tab.o: y.tab.c - -dist: dep clean - rm -rf $(NAME)-$(VERSION) - (cd .. && ln -sf $(CURDIR) $(NAME)-$(VERSION)) - (cd .. && tar $(addprefix --exclude ,$(exclusions)) -chzf $(NAME)-$(VERSION).tar.gz $(NAME)-$(VERSION)) - rm -f ../$(NAME)-$(VERSION) - @echo "Created source release $(NAME)-$(VERSION).tar.gz" - -dep: y.tab.c lex.yy.c - @sed -e '/^# Source code dependencies/,$$d' < Makefile > Makefile.dep - @echo "# Source code dependencies" >> Makefile.dep - $(CC) -MM $(SRCS) $(EXTRA_SRCS) >> Makefile.dep - mv Makefile.dep Makefile - -# Source code dependencies -ee.o: ee.c -dgl-common.o: dgl-common.c dgamelaunch.h -ttyrec.o: ttyrec.c dgamelaunch.h ttyrec.h io.h -dgamelaunch.o: dgamelaunch.c dgamelaunch.h ttyplay.h ttyrec.h y.tab.h -io.o: io.c ttyrec.h -ttyplay.o: ttyplay.c dgamelaunch.h ttyplay.h ttyrec.h io.h stripgfx.h -mygetnstr.o: mygetnstr.c -stripgfx.o: stripgfx.c stripgfx.h -strlcpy.o: strlcpy.c -strlcat.o: strlcat.c -y.tab.o: y.tab.c dgamelaunch.h -lex.yy.o: lex.yy.c y.tab.h dgamelaunch.h -nethackstub.o: nethackstub.c diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000..ada238b --- /dev/null +++ b/Makefile.in @@ -0,0 +1,83 @@ +NAME = @PACKAGE_NAME@ +VERSION = @PACKAGE_VERSION@ + +exclusions = CVS .svn .cvsignore tags +prefix = @prefix@ +sbindir = @sbindir@ +mandir = @mandir@ + +CC = @CC@ +LIBS = @LIBS@ +CFLAGS = @CFLAGS@ +INSTALL = @INSTALL@ +LEX = @LEX@ +YACC = @YACC@ + +MAN8 = dgamelaunch.8 +EDITOR = @EDITOR@ + +SRCS = $(EDITOR) dgl-common.c ttyrec.c dgamelaunch.c io.c ttyplay.c mygetnstr.c stripgfx.c strlcpy.c strlcat.c y.tab.c lex.yy.c +EXTRA_SRCS = nethackstub.c +OBJS = $(SRCS:.c=.o) +WALL_OBJS = y.tab.o lex.yy.o dgl-common.o dgl-wall.o strlcat.o strlcpy.o + +all: $(NAME) dgl-wall + +$(NAME): $(OBJS) + $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) + +dgl-wall: $(WALL_OBJS) + $(CC) $(CFLAGS) -o $@ $(WALL_OBJS) $(LIBS) + +clean: + rm -f $(NAME) nethackstub dgl-wall + rm -f editors/*.o *.o .#* *~ y.tab.* lex.yy.c Makefile.dep + rm -f Makefile config.h config.log config.status + rm -rf autom4te.cache + +install: + $(INSTALL_PROGRAM) -m 755 $(NAME) $(sbindir) + $(INSTALL_PROGRAM) -m 644 $(MAN8) $(mandir)/man8 + +indent: + indent -nut -ts2 *.c *.h + rm -f *~ + +lex.yy.c: config.l + $(LEX) $< + +y.tab.c y.tab.h: config.y + $(YACC) -d $< + +lex.yy.o: lex.yy.c +y.tab.o: y.tab.c + +dist: dep clean + rm -rf $(NAME)-$(VERSION) + autoheader + autoconf + (cd .. && ln -sf $(CURDIR) $(NAME)-$(VERSION)) + (cd .. && tar $(addprefix --exclude ,$(exclusions)) -chzf $(NAME)-$(VERSION).tar.gz $(NAME)-$(VERSION)) + rm -f ../$(NAME)-$(VERSION) + @echo "Created source release $(NAME)-$(VERSION).tar.gz" + +dep: y.tab.c lex.yy.c + @sed -e '/^# Source code dependencies/,$$d' < Makefile > Makefile.dep + @echo "# Source code dependencies" >> Makefile.dep + $(CC) -MM $(SRCS) $(EXTRA_SRCS) >> Makefile.dep + mv Makefile.dep Makefile + +# Source code dependencies +ee.o: ee.c +dgl-common.o: dgl-common.c dgamelaunch.h +ttyrec.o: ttyrec.c dgamelaunch.h ttyrec.h io.h +dgamelaunch.o: dgamelaunch.c dgamelaunch.h ttyplay.h ttyrec.h y.tab.h +io.o: io.c ttyrec.h +ttyplay.o: ttyplay.c dgamelaunch.h ttyplay.h ttyrec.h io.h stripgfx.h +mygetnstr.o: mygetnstr.c +stripgfx.o: stripgfx.c stripgfx.h +strlcpy.o: strlcpy.c +strlcat.o: strlcat.c +y.tab.o: y.tab.c dgamelaunch.h +lex.yy.o: lex.yy.c y.tab.h dgamelaunch.h +nethackstub.o: nethackstub.c diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..ae521eb --- /dev/null +++ b/configure.ac @@ -0,0 +1,38 @@ +AC_INIT(dgamelaunch, [1.4.6]) +AC_PREREQ(2.50) + +AC_CONFIG_HEADER(config.h) + +AC_PROG_CC +AC_STDC_HEADERS +AC_PROG_LEX + +LIBS="$LIBS $LEXLIB" + +AC_PROG_YACC + +case "$(uname -s)" in + Linux | *BSD) + LIBS="$LIBS -lutil -lcrypt" + ;; +esac + +if test "$ac_cv_c_compiler_gnu" = yes; then + CFLAGS="$CFLAGS -Wall -Wno-unused" +fi + +AC_PROG_INSTALL +AC_SEARCH_LIBS(initscr, [ncurses curses termcap]) + +AC_ARG_ENABLE(enable-virus, +[AS_HELP_STRING([--enable-virus], [Use the 'virus' vi clone instead of the friendly ee editor.])], +[AC_SUBST(EDITOR, virus.c)], [AC_SUBST(EDITOR, ee.c)]) + +AC_ARG_WITH(config-file, +[AS_HELP_STRING([--with-config-file=PATH], [Define the path to the default configuration file.])] +[configfile=$withval], [configfile=/etc/dgamelaunch.conf]) + +AC_DEFINE_UNQUOTED(DEFCONFIG, "$withval", [Path to the default config file.]) + +AC_CONFIG_FILES(Makefile) +AC_OUTPUT diff --git a/dgamelaunch.c b/dgamelaunch.c index bbe928a..435c1d0 100644 --- a/dgamelaunch.c +++ b/dgamelaunch.c @@ -31,6 +31,7 @@ #define _GNU_SOURCE #include "dgamelaunch.h" +#include "config.h" #include "ttyplay.h" #include "ttyrec.h" @@ -246,7 +247,7 @@ loadbanner (struct dg_banner *ban) ban->len = 2; ban->lines = malloc (sizeof (char *)); ban->lines[0] = - strdup ("### dgamelaunch " VERSION + strdup ("### dgamelaunch " PACKAGE_VERSION " - network console game launcher"); len = strlen(myconfig->banner) + ARRAY_SIZE("### NOTE: administrator has not installed a file"); ban->lines[1] = malloc(len); @@ -277,9 +278,9 @@ loadbanner (struct dg_banner *ban) bufnew[i] = *(b++); else { - strlcat (bufnew, VERSION, 80); - b += 8; /* skip the whole $VERSION string */ - i += ARRAY_SIZE (VERSION) - 1; + strlcat (bufnew, PACKAGE_VERSION, 80); + b += 8; /* skip the whole $PACKAGE_VERSION string */ + i += ARRAY_SIZE (PACKAGE_VERSION) - 1; break; } diff --git a/install-sh b/install-sh new file mode 100755 index 0000000..6ce63b9 --- /dev/null +++ b/install-sh @@ -0,0 +1,294 @@ +#!/bin/sh +# +# install - install a program, script, or datafile +# +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. It can only install one file at a time, a restriction +# shared with many OS's install programs. + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +transformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd=$cpprog + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd=$stripprog + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "$0: no input file specified" >&2 + exit 1 +else + : +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d "$dst" ]; then + instcmd=: + chmodcmd="" + else + instcmd=$mkdirprog + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f "$src" ] || [ -d "$src" ] + then + : + else + echo "$0: $src does not exist" >&2 + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "$0: no destination specified" >&2 + exit 1 + else + : + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d "$dst" ] + then + dst=$dst/`basename "$src"` + else + : + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' + ' +IFS="${IFS-$defaultIFS}" + +oIFS=$IFS +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS=$oIFS + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp=$pathcomp$1 + shift + + if [ ! -d "$pathcomp" ] ; + then + $mkdirprog "$pathcomp" + else + : + fi + + pathcomp=$pathcomp/ +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd "$dst" && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename "$dst"` + else + dstfile=`basename "$dst" $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename "$dst"` + else + : + fi + +# Make a couple of temp file names in the proper directory. + + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + +# Trap to clean up temp files at exit. + + trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 + trap '(exit $?); exit' 1 2 13 15 + +# Move or copy the file name to the temp name + + $doit $instcmd "$src" "$dsttmp" && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi && + +# Now remove or move aside any old file at destination location. We try this +# two ways since rm can't unlink itself on some systems and the destination +# file might be busy for other reasons. In this case, the final cleanup +# might fail but the new file should still install successfully. + +{ + if [ -f "$dstdir/$dstfile" ] + then + $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null || + $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null || + { + echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 + (exit 1); exit + } + else + : + fi +} && + +# Now rename the file to the real destination. + + $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" + +fi && + +# The final little trick to "correctly" pass the exit status to the exit trap. + +{ + (exit 0); exit +}