#############################################################################
##
#W  Makefile			GAP source			 Frank Celler
##
##
#Y  Copyright (C)  1997,  Lehrstuhl D fuer Mathematik,	RWTH Aachen,  Germany
##
##  This file creates the `configure' scripts using `autoconf'.
##
CC=cc

SOURCE=\
ariths		blister		bool		c_meths1	c_type1	\
c_oper1         c_filt1   	c_random \
calls		code		compiler	compstat	costab	\
cyclotom	dt		dteval		exprs		finfield\
funcs		gap		gasman		gmpints		gvars	\
integer		intrprtr	listfunc	listoper	lists	\
objcftl		objects		objfgelm	objpcgel	objscoll\
objccoll	opers		permutat	plist		precord	\
range		rational	read		records		saveload\
scanner		sctable		set		stats		streams	\
string		sysfiles	system		tietze		vars	\
vecgf2		vec8bit         vector		vecffe		weakptr	\
iostream	macfloat	intfuncs


default: configure.out ../configure Makegap.in

config.hin: configure.in aclocal.m4
	autoheader

configure.out: configure.in aclocal.m4 config.hin
	autoconf
	sed -e 's%^srcdir=$$%srcdir=../../src%' \
	    -e 's%ac_dir_suffix=/.*$$%ac_dir_suffix=%' \
	    -e 's%config\.h:config\.hin%config.h:../../cnf/config.hin%' \
	    < configure > configure.out
	chmod 755 configure.out
	rm configure

../configure: ../configure.in
	( cd .. ; autoconf )

Makegap.in: Makegap.top Makefile Makegap.bottom
	@echo "creating 'Makegap.in'"
	@echo "# DO NOT EDIT THIS FILE BY HAND IT IS MACHINE GENERATED" > Makegap.in
	@cat Makegap.top >> Makegap.in
	@echo >> Makegap.in
	@echo '# OBJECTS are generated from SOURCE' >> Makegap.in
	@/bin/echo -n "OBJECTS=" >> Makegap.in
	@eval 'for i in $(SOURCE); do /bin/echo -n "$$i.o "; done' >> Makegap.in
	@echo '$$(GAPMPI_OBJ)' >> Makegap.in
	@echo >> Makegap.in
	@echo >> Makegap.in
	@echo '# compile and link GAP' >> Makegap.in
	@echo 'gap: $$(OBJECTS) $$(ITANIUMOBJ) $$(EXTOBJS) $$(GMP_LIBS)' >> Makegap.in
	@echo '	$$(CC) $$(LDFLAGS) -o gap $$(OBJECTS) $$(ITANIUMOBJ) -lm $$(MPILIBS) $$(EXTOBJS) $$(GMP_LIBS) $$(CONFLIBS)' >> Makegap.in
	@echo >> Makegap.in
	@echo '# compile and link gap.dll on cygwin' >> Makegap.in
	@echo 'gapdll: $$(OBJECTS) $$(ITANIUMOBJ) $$(EXTOBJS) $$(GMP_LIBS)' >> Makegap.in
	@echo '	$$(CC) $$(CPPFLAGS) $$(GMP_CFLAGS) $$(CFLAGS) -DCOMPILECYGWINDLL -o gap.o -c ../../src/gap.c' >> Makegap.in
	@echo '	$$(CC) $$(LDFLAGS) -o gap.dll -shared $$(OBJECTS) $$(ITANIUMOBJ) -lm $$(MPILIBS) $$(EXTOBJS) $$(GMP_LIBS) $$(CONFLIBS)' >> Makegap.in
	@echo '	$$(CC) $$(LDFLAGS) -o gapw95 ../../src/gapw95.c $$(CPPFLAGS) $$(GMP_CFLAGS) $$(CFLAGS) -DCOMPILECYGWINDLL gap.dll' >> Makegap.in
	@echo >> Makegap.in
	@echo '# dependencies are automatically generated' >> Makegap.in
	@(for i in `eval 'echo $(SOURCE)'`; do \
	    $(CC) -MM -MG -I .. -DUSE_PRECOMPILED ../src/$$i.c; \
	    echo '	$$(CC) $$(CPPFLAGS) $$(GMP_CFLAGS) $$(CFLAGS)' -o $$i.o -c ../src/$$i.c; \
	    echo ; \
	done \
	) | sed -e 's:../src:@srcdir@:g' | sed -e 's:extern:../../extern:g' | sed -e 's#\.o: #.o: ../../Makefile #g' >> Makegap.in
	@cat Makegap.bottom >> Makegap.in
