@echo off
rem Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
rem 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
rem This file is part of GNU Make.
rem
rem GNU Make is free software; you can redistribute it and/or modify it under
rem the terms of the GNU General Public License as published by the Free
rem Software Foundation; either version 3 of the License, or (at your option)
rem any later version.
rem
rem GNU Make is distributed in the hope that it will be useful, but WITHOUT
rem ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
rem FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for.
rem more details.
rem
rem You should have received a copy of the GNU General Public License along
rem with this program.  If not, see <http://www.gnu.org/licenses/>.

echo Configuring glob for DJGPP
rem This batch file assumes a unix-type "sed" program

echo # Makefile generated by "configure.bat"> Makefile

if exist config.sed del config.sed

echo "s/@srcdir@/./					">> config.sed
echo "s/@CC@/gcc/					">> config.sed
echo "s/@CFLAGS@/-O2 -g/				">> config.sed
echo "s/@CPPFLAGS@/-DHAVE_CONFIG_H -I../		">> config.sed
echo "s/@AR@/ar/					">> config.sed
echo "s/@RANLIB@/ranlib/				">> config.sed
echo "s/@LDFLAGS@//					">> config.sed
echo "s/@DEFS@//					">> config.sed
echo "s/@ALLOCA@//					">> config.sed
echo "s/@LIBS@//					">> config.sed
echo "s/@LIBOBJS@//					">> config.sed
echo "s/^Makefile *:/_Makefile:/			">> config.sed
echo "s/^config.h *:/_config.h:/			">> config.sed

sed -e "s/^\"//" -e "s/\"$//" -e "s/[ 	]*$//" config.sed > config2.sed
sed -f config2.sed Makefile.in >> Makefile
del config.sed
del config2.sed
