#############################################################################
##
#A  Makefile                    GAP source                   Martin Schoenert
##
#H  @(#)$Id: Makefile,v 1.5 1997/04/25 14:32:55 ahulpke Exp $
##
#Y  Copyright (C)  1994,  Lehrstuhl D fuer Mathematik,  RWTH Aachen,  Germany
##
##  This file contains the definitions and actions to compile and  link  GAP.
##
##  To compile and link GAP you simply enter
##
##      make
##
##  for a list of targets  of the form  '<vendor>-<cpu>-<system>-<compiler>',
##  such as 'sun-sparc-sunos-gcc2',  which is the target for a Sun 4  machine
##  running the SunOS operating system with the GNU C compiler version 2.
##
##  Choose the best matching target and enter
##
##      make  <target>
##
##  e.g., enter 'make sun-sparc-sunos-gcc2',  to compile all the source files
##  and produce an executable file 'gap'.
##
##  Note  that  the  targets  are  listed  according  to   preference,  e.g.,
##  'sun-sparc-sunos-gcc2' is listed before 'sun-sparc-sunos-cc' because  the
##  GNU  C compiler produces faster code on Sun 4 machines than native 'cc'.
##
##  If no target matches precisely, use 'bsd' (if  your UNIX is more Berkely)
##  or 'usg' (if your UNIX is more  System  V).   If compilation  of the file
##  'system.c'  fails or  the command line editing does not work,  remove the
##  file 'system.o' and try the other target.
##
##  To specify additional compiler and linker options enter
##
##      make  <target>  COPTS=<compiler-options>  LOPTS=<linker-options>
##
##  e.g., enter 'make sun-sparc-sunos-gcc2 COPTS=-g LOPTS=-g' to compile  GAP
##  with debugging information.
##
##  To compile  GAP on a  DOS machine you need DJGPP version 1.11m5 or higher
##  (available from     'ftp.informatik.rwth-aachen.de').    DJGPP    must be
##  installed in  the directory '\DJGPP\',  because the  linkage script looks
##  for the DOS extender 'GO32.EXE' in  '\DJGPP\BIN\'.  If you have installed
##  DJGPP differently you have to change this below.
##
##  To compile GAP on an  IBM PC compatible under  OS/2 you must comment  out
##  the line 'SHELL = /bin/sh' below.
##
#H  $Log: Makefile,v $
#H  Revision 1.5  1997/04/25 14:32:55  ahulpke
#H  added djppcross
#H
#H  Revision 1.4  1997/04/14 10:17:35  gap
#H  Minor solaris changes
#H
#H  Revision 1.3  1997/04/14 09:28:29  gap
#H  Added solaris
#H
#H  Revision 1.2  1997/02/05 15:41:18  werner
#H  Added targets for NEXTSTEP 3 on i386.
#H
#H  Revision 1.1.1.1  1996/12/11 12:43:50  werner
#H  Preparing 3.4.4 for release
#H
#H  Revision 3.16  1994/06/09  20:55:51  mschoene
#H  added coding theory package
#H
#H  Revision 3.15  1994/06/03  12:02:32  mschoene
#H  updated 'ibm-i386-dos-djgpp' entry for DJGPP 1.11m5
#H
#H  Revision 3.14  1994/01/17  12:11:34  fceller
#H  added options for 'sun-sparc-sunos-gcc2'
#H
#H  Revision 3.13  1994/01/17  09:47:13  fceller
#H  added options for 'ibm-power-aix-cc'
#H
#H  Revision 3.12  1993/12/30  07:43:59  mschoene
#H  added options for 'sgi-mips-irix-gcc2' and 'sgi-mips-irix-cc'
#H
#H  Revision 3.11  1993/12/30  07:36:42  mschoene
#H  added options and 'emxbind' command for 'ibm-i386-os2-emx'
#H
#H  Revision 3.10  1993/10/28  18:24:46  martin
#H  fixed the compilation flags for 'ibm-i386-linux-gcc2'
#H
#H  Revision 3.9  1993/10/18  12:43:17  martin
#H  changed to use <vendor>-<cpu>-<system>-<compiler> and only one system file
#H
#H  Revision 3.8  1993/02/25  16:49:18  fceller
#H  added 'sgi-irix4-gcc2' and 'sgi-irix4-cc' (with 'SYS_HAS_SYSTEM_ARG')
#H
#H  Revision 3.7  1993/02/25  16:45:59  fceller
#H  added 'SYS_HAS_SIG_T' for 'SYS_IS_USG'
#H
#H  Revision 3.6  1993/02/04  10:51:10  martin
#H  added 'plist' and 'vecffe' and cleaned up
#H
#H  Revision 3.5  1993/01/27  12:48:30  martin
#H  added more comments
#H
#H  Revision 3.4  1993/01/27  12:17:29  martin
#H  fixed 'ibmpc-msdos-djgpp'
#H
#H  Revision 3.3  1993/01/12  13:23:53  fceller
#H  changed 'ibmpc-386bsd-gcc' to 'ibmpc-386bsd-cc'
#H
#H  Revision 3.2  1992/11/30  13:09:45  fceller
#H  added 'next-mach-gcc2'
#H
#H  Revision 3.1  1992/11/16  18:49:03  martin
#H  initial revision under RCS (of the new Makefile)
#H
##
SHELL = /bin/sh


#############################################################################
##
#T  Targets . . . . .  targets of the form <vendor>-<cpu>-<system>-<compiler>
##
##  Following are the targets that the  user can specify.  Each target  calls
##  'make' recursively twice.
##
##  The first time it calls
##
##      @$(MAKE) <system-file>.o  CFLAGS="$(COPTS) <copts>"
##
##  where <system-file> is either 'system' or the name of another system file
##  and where <copts> are the options to  pass to  pass  to  the  C compiler,
##  e.g., 'SYS_IS_BSD' or 'SYS_IS_MSDOS'.
##
##  The second time it calls
##
##      @$(MAKE) gap  CC=<c-compiler> CFLAGS="$(COPTS) <opts>" \
##                    SYS_FILE=<system-file>.o LOPTS="$(LOPTS)"
##
##  where <system-file> is the same file as above, <c-compiler> is  the  name
##  of the C compiler to use ($(CC) is used if this is not present),  <copts>
##  are  the options to pass ot  the  C compiler, e.g., '-O2'.
##
unknown:
	@echo "usage: 'make <target>' where target is one of"
	@echo "'atari-m68k-tos-gcc2'   for Atari ST under TOS with GNU cc 2"
	@echo "'dec-mips-ultrix-gcc2'  for DECstation under Ultrix with GNU cc 2"
	@echo "'dec-mips-ultrix-cc'    for DECstation under Ultrix with cc"
	@echo "'hp-hppa1.0-hpux-cc'    for HP 9000/800 under HP-UX with cc"
	@echo "'hp-hppa1.1-hpux-cc'    for HP 9000/700 under HP-UX with cc"
	@echo "'ibm-power-aix-cc'      for IBM RS/6000 under AIX with cc"
	@echo "'ibm-i386-386bsd-gcc2'  for IBM PC under 386BSD with GNU cc 2"
	@echo "'ibm-i386-386bsd-cc'    for IBM PC under 386BSD with cc (GNU)"
	@echo "'ibm-i386-linux-gcc2'   for IBM PC under Linux with GNU cc 2"
	@echo "'ibm-i386-dos-djgpp'    for IBM PC under MSDOS with DJ GNU cc"
	@echo "'ibm-i386-os2-emx'      for IBM PC under OS/2 with EMX GNU cc"
	@echo "'mips-mips-bsd-cc'      for MIPS under RISC/os Berkeley with cc"
	@echo "'mips-mips-sysv-cc'     for MIPS under RISC/os System V with cc"
	@echo "'next-m68k-mach-gcc2'   for NEXTSTEP 3 on NeXT   with GNU cc 2"
	@echo "'next-m68k-mach-cc'     for NEXTSTEP 3 on NeXT   with cc (GNU)"
	@echo "'next-i386-mach-gcc2'   for NEXTSTEP 3 on IBM PC with GNU cc 2"
	@echo "'next-i386-mach-cc'     for NEXTSTEP 3 on IBM PC with cc (GNU)"
	@echo "'sequent-i386-dynix-cc' for Sequent Symmetry under Dynix with cc"
	@echo "'sgi-mips-irix-gcc2'    for SGI under Irix with GNU cc 2"
	@echo "'sgi-mips-irix-cc'      for SGI under Irix with cc"
	@echo "'sun-m68k-sunos-gcc2'   for SUN 3 under SunOS with GNU cc 2"
	@echo "'sun-m68k-sunos-cc'     for SUN 3 under SunOS with cc"
	@echo "'sun-sparc-solaris-cc'  for SUN under Solaris with cc"
	@echo "'sun-sparc-sunos-gcc2'  for SUN 4 under SunOS with GNU cc 2"
	@echo "'sun-sparc-sunos-cc'    for SUN 4 under SunOS with cc"
	@echo "'bsd'                   for others under Berkeley UNIX with cc"
	@echo "'usg'                   for others under System V UNIX with cc"
	@echo "   targets are listed according to preference, i.e.,"
	@echo "   'sun-sparc-sunos-gcc2' is better than 'sun-sparc-sunos-cc'."
	@echo "   additional C compiler and linker flags can be passed with"
	@echo "   'make <target> COPTS=<compiler-opts> LOPTS=<linker-opts>',"
	@echo "   i.e., 'make sun-sparc-sunos-gcc2 COPTS=-g LOPTS=-g.'"

# 'unistd.h' claims 'sbrk' has first argument 'size_t' (UNIX says 'int')
atari-m68k-tos-gcc2:
	@$(MAKE) system.o   CC=gcc  CFLAGS="$(COPTS) -DSYS_IS_TOS_GCC2 -DSYS_HAS_MISC_PROTO"
	@$(MAKE) gap.ttp    CC=gcc  CFLAGS="$(COPTS) -O2"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

dec-mips-ultrix-gcc2:
	@$(MAKE) system.o   CC=gcc  CFLAGS="$(COPTS) -DSYS_IS_BSD"
	@$(MAKE) gap        CC=gcc  CFLAGS="$(COPTS) -O2"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

dec-mips-ultrix-gcc2-debug:
	@$(MAKE) system.o   CC=gcc  CFLAGS="$(COPTS) -g -ansi -Wall -pedantic -DSYS_IS_BSD"
	@$(MAKE) gap        CC=gcc  CFLAGS="$(COPTS) -g -ansi -Wall -pedantic"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

# Ultrix is a almost ANSI (but does not support 'const')
dec-mips-ultrix-cc:
	@$(MAKE) system.o   CFLAGS="$(COPTS) -DSYS_IS_BSD -DSYS_HAS_ANSI=1"
	@$(MAKE) gap        CFLAGS="$(COPTS) -O2"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

# HP-UX is almost ANSI
# 'sys/times.h' claims 'times' returns 'clock_t' (how shall it return -1?)
hp-hppa1.0-hpux-cc:
	@$(MAKE) system.o   CFLAGS="$(COPTS) -DSYS_IS_USG -DSYS_HAS_ANSI=1 -DSYS_HAS_CONST=const -DSYS_HAS_TIME_PROTO"
	@$(MAKE) gap        CFLAGS="$(COPTS) -O"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

# HP-UX is almost ANSI
# 'sys/times.h' claims 'times' returns 'clock_t' (how shall it return -1?)
hp-hppa1.1-hpux-cc:
	@$(MAKE) system.o   CFLAGS="$(COPTS) -DSYS_IS_USG -DSYS_HAS_ANSI=1 -DSYS_HAS_CONST=const -DSYS_HAS_TIME_PROTO"
	@$(MAKE) gap        CFLAGS="$(COPTS) -O"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

ibm-power-aix-cc:
	@$(MAKE) system.o   CFLAGS="$(COPTS) -DSYS_IS_USG -DSYS_HAS_SIG_T=int -DSYS_HAS_SIGNAL_PROTO -DSYS_HAS_STRING_PROTO"
	@$(MAKE) gap        CFLAGS="-O"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

# 'stdio.h' claims 'fgets' has second argument 'size_t' (ANSI says 'int')
# 'sys/ioctl.h' claims 'ioctl' has third argument '...' (UNIX says 'char*')
# 'sys/signal.h' claims 'kill' has first argument 'pid_t' (UNIX says 'int')
ibm-i386-386bsd-gcc2:
	@$(MAKE) system.o   CC=gcc  CFLAGS="$(COPTS) -DSYS_IS_BSD -DSYS_HAS_STDIO_PROTO -DSYS_HAS_IOCTL_PROTO -DSYS_HAS_SIGNAL_PROTO"
	@$(MAKE) gap        CC=gcc  CFLAGS="$(COPTS) -O2"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

# 'stdio.h' claims 'fgets' has second argument 'size_t' (ANSI says 'int')
# 'sys/ioctl.h' claims 'ioctl' has third argument '...' (UNIX says 'char*')
# 'sys/signal.h' claims 'kill' has first argument 'pid_t' (UNIX says 'int')
ibm-i386-386bsd-cc:
	@$(MAKE) system.o   CC=cc  CFLAGS="$(COPTS) -DSYS_IS_BSD -DSYS_HAS_STDIO_PROTO -DSYS_HAS_IOCTL_PROTO -DSYS_HAS_SIGNAL_PROTO"
	@$(MAKE) gap        CC=cc  CFLAGS="$(COPTS) -O"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

ibm-i386-linux-gcc2:
	@$(MAKE) system.o   CC=$(DCC)  CFLAGS="$(COPTS) -DSYS_IS_USG -DSYS_HAS_IOCTL_PROTO -DSYS_HAS_TIME_PROTO -DSYS_HAS_SIG_T=void"
	@$(MAKE) gap        CC=$(DCC)  CFLAGS="$(COPTS) $(DCFLAG)"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

any-linux:
	@$(MAKE) system.o   CC=$(DCC)  CFLAGS="$(COPTS) -DSYS_IS_USG -DSYS_HAS_IOCTL_PROTO -DSYS_HAS_TIME_PROTO -DSYS_HAS_SIG_T=void"
	@$(MAKE) gap        CC=$(DCC)  CFLAGS="$(COPTS) $(DCFLAG)"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

# 'std.h' claims 'strncat' has third argument 'int' (ANSI says 'size_t')
# 'stdio.h' claims 'setbuf' has return type 'int' (UNIX says 'void')
# 'std.h' claims 'sbrk' has return type 'void*' (UNIX says 'char*')
ibm-i386-dos-djgpp:
	@$(MAKE) system.o   CC=gcc  CFLAGS="$(COPTS) -DSYS_IS_MSDOS_DJGPP -DSYS_HAS_STRING_PROTO -DSYS_HAS_STDIO_PROTO -DSYS_HAS_MISC_PROTO"
	@$(MAKE) gapdjg.exe CC=gcc  CFLAGS="$(COPTS) -O2"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

ibm-i386-dos-djgppcross:
	@$(MAKE) system.o   CC=dos-gcc  CFLAGS="$(COPTS) -DSYS_IS_MSDOS_DJGPP -DSYS_HAS_STRING_PROTO -DSYS_HAS_STDIO_PROTO -DSYS_HAS_MISC_PROTO"
	@$(MAKE) gapdjg.exe CC=dos-gcc  CFLAGS="$(COPTS) -O2"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

ibm-i386-os2-emx:
	@$(MAKE) sytem.o    CC=gcc  CFLAGS="$(COPTS) -DSYS_IS_OS2_EMX -DSYS_HAS_STDIO_PROTO -DSYS_HAS_TIME_PROTO -DSYS_HAS_MISC_PROTO"
	@$(MAKE) gapemx.exe CC=gcc  CFLAGS="$(COPTS) -O2"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

# 'sys/signal.h' claims signal handlers return 'int' (in SysV 'void')
mips-mips-bsd-cc:
	@$(MAKE) system.o   CFLAGS="$(COPTS) -DSYS_IS_BSD -DSYS_HAS_SIG_T=int -systype bsd43"
	@$(MAKE) gap        CFLAGS="$(COPTS) -O2 -systype bsd43"  SYS_FILE=system.o  LOPTS="$(LOPTS) -systype bsd43"

mips-mips-sysv-cc:
	@$(MAKE) system.o   CFLAGS="$(COPTS) -DSYS_IS_USG -systype sysv"
	@$(MAKE) gap        CFLAGS="$(COPTS) -O2 -systype sysv"  SYS_FILE=system.o  LOPTS="$(LOPTS) -systype sysv"

next-m68k-mach-gcc2:
	@$(MAKE) system.o   CC=gcc  CFLAGS="$(COPTS) -DSYS_IS_MACH"
	@$(MAKE) gap        CC=gcc  CFLAGS="$(COPTS) -O2" SYS_FILE=system.o  LOPTS="$(LOPTS)"

next-m68k-mach-cc:
	@$(MAKE) system.o   CFLAGS="$(COPTS) -DSYS_IS_MACH"
	@$(MAKE) gap        CFLAGS="$(COPTS) -O" SYS_FILE=system.o  LOPTS="$(LOPTS)"

next-i386-mach-gcc2:
	@$(MAKE) system.o   CC=gcc  CFLAGS="$(COPTS) -DSYS_IS_MACH -DSYS_HAS_MISC_PROTO"
	@$(MAKE) gap        CC=gcc  CFLAGS="$(COPTS) -O2" SYS_FILE=system.o  LOPTS="$(LOPTS)"

next-i386-mach-cc:
	@$(MAKE) system.o   CFLAGS="$(COPTS) -DSYS_IS_MACH -DSYS_HAS_MISC_PROTO"
	@$(MAKE) gap        CFLAGS="$(COPTS) -O" SYS_FILE=system.o  LOPTS="$(LOPTS)"

sequent-i386-dynix-cc:
	@$(MAKE) system.o   CFLAGS="$(COPTS) -DSYS_IS_BSD"
	@$(MAKE) gap        CFLAGS="$(COPTS) -O"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

sgi-mips-irix-gcc2:
	@$(MAKE) system.o   CC=gcc  CFLAGS="$(COPTS) -DSYS_IS_USG -DSYS_HAS_STRING_PROTO -DSYS_HAS_TIME_PROTO"
	@$(MAKE) gap        CC=gcc  CFLAGS="$(COPTS) -O"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

sgi-mips-irix-cc:
	@$(MAKE) system.o   CFLAGS="$(COPTS) -DSYS_IS_USG -DSYS_HAS_STRING_PROTO -DSYS_HAS_TIME_PROTO"
	@$(MAKE) gap        CFLAGS="$(COPTS) -O"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

# 'sys/times.h' claims 'times' returns 'clock_t' (how shall it return -1?)
sun-m68k-sunos-gcc2:
	@$(MAKE) system.o   CC=gcc  CFLAGS="$(COPTS) -DSYS_IS_USG -DSYS_HAS_TIME_PROTO"
	@$(MAKE) gap        CC=gcc  CFLAGS="$(COPTS) -O2"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

# 'sys/times.h' claims 'times' returns 'clock_t' (how shall it return -1?)
sun-m68k-sunos-cc:
	@$(MAKE) system.o   CFLAGS="$(COPTS) -DSYS_IS_USG -DSYS_HAS_TIME_PROTO"
	@$(MAKE) gap        CFLAGS="$(COPTS) -O"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

sun-sparc-solaris-cc:
	@$(MAKE) system.o   CC=cc  CFLAGS="$(COPTS) -O2 -DSYS_IS_USG -DSYS_HAS_TIME_PROTO -DSYS_HAS_STRING_PROTO"
	@$(MAKE) gap        CC=cc  CFLAGS="$(COPTS) -O2"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

# 'sys/times.h' claims 'times' returns 'clock_t' (how shall it return -1?)
sun-sparc-sunos-gcc2:
	@$(MAKE) system.o   CC=gcc  CFLAGS="$(COPTS) -DSYS_IS_USG -DSYS_HAS_TIME_PROTO -DSYS_HAS_SIGNAL_PROTO"
	@$(MAKE) gap        CC=gcc  CFLAGS="$(COPTS) -O2"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

# 'sys/times.h' claims 'times' returns 'clock_t' (how shall it return -1?)
sun-sparc-sunos-cc:
	@$(MAKE) system.o   CFLAGS="$(COPTS) -DSYS_IS_USG -DSYS_HAS_TIME_PROTO"
	@$(MAKE) gap        CFLAGS="$(COPTS) -O"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

bsd:
	@$(MAKE) system.o   CC=$(CC)  CFLAGS="$(COPTS) -DSYS_IS_BSD"
	@$(MAKE) gap        CC=$(CC)  CFLAGS="$(COPTS) -O"  SYS_FILE=system.o  LOPTS="$(LOPTS)"

usg:
	@$(MAKE) system.o   CC=$(CC)  CFLAGS="$(COPTS) -DSYS_IS_USG"
	@$(MAKE) gap        CC=$(CC)  CFLAGS="$(COPTS) -O"  SYS_FILE=system.o  LOPTS="$(LOPTS)"


#############################################################################
##
#T  Linkage . . . . . . . . . . . . . . . . . . . . . .  commands to link GAP
##
##  Following are the commands to link GAP.  The targets below should not  be
##  used directly, they should only be addressed by the  recursive  calls  of
##  'make' from above.
##
##  After linking for DOS we prepend the DOS extender 'GO32.EXE' to the file,
##  so that we get an executable that works without further run-time support.
##
OBJBASC = gap.o $(SYS_FILE) gasman.o scanner.o idents.o read.o eval.o
OBJFLDS = integer.o rational.o cyclotom.o unknown.o finfield.o polynom.o
OBJGRPS = permutat.o word.o costab.o tietze.o agcollec.o aggroup.o pcpresen.o
OBJLIST = list.o plist.o set.o vector.o vecffe.o range.o blister.o string.o
OBJLANG = record.o statemen.o function.o coding.o
OBJECTS = $(OBJBASC) $(OBJFLDS) $(OBJGRPS) $(OBJLIST) $(OBJLANG)

gap       : $(OBJECTS)
	$(CC) $(LOPTS) -o gap $(OBJECTS)

gapdjg.exe: $(OBJECTS)
	$(CC) $(LOPTS) -o gapdjg.out $(OBJECTS) -lpc
	copy /b \djgpp\bin\go32.exe+gapdjg.out gapdjg.exe

gapemx.exe: $(OBJECTS)
	$(CC) $(LOPTS) -o gapemx.exe $(OBJECTS)
	emxbind -u $(EMX) gapemx.exe
	emxbind -a gapemx.exe -s65536

gap.ttp   : $(OBJECTS)
	$(CC) $(LOPTS) -o gap.ttp $(OBJECTS)


#############################################################################
##
#T  Dependencies  . . . . . . . . .  dependencies between the packages of GAP
##
##  Following are the dependencies between the various packages of GAP.  Note
##  that the dependencies '<package>.o: <package>.c' are  not  given,  'make'
##  adds them automagically.
##
INCBASC = system.h gasman.h scanner.h idents.h eval.h integer.h
INCFLDS = rational.h cyclotom.h unknown.h finfield.h polynom.h
INCGRPS = permutat.h word.h costab.h tietze.h agcollec.h aggroup.h pcpresen.h
INCLIST = list.h plist.h set.h vector.h vecffe.h range.h blister.h string.h
INCLANG = record.h statemen.h function.h coding.h

gap.o     :            $(INCBASC) list.h plist.h string.h read.h $(INCLANG)
system.o  : system.h
gasman.o  : gasman.h   system.h
scanner.o : scanner.h  system.h
idents.o  : idents.h   system.h gasman.h
read.o    : read.h     $(INCBASC)
eval.o    : eval.h     $(INCBASC) $(INCFLDS) $(INCGRPS) $(INCLIST) $(INCLANG)
integer.o : integer.h  $(INCBASC)
rational.o: rational.h $(INCBASC)
cyclotom.o: cyclotom.h $(INCBASC) list.h
unknown.o : unknown.h  $(INCBASC)
finfield.o: finfield.h $(INCBASC)
polynom.o : polynom.h  $(INCBASC) list.h plist.h vector.h vecffe.h finfield.h
permutat.o: permutat.h $(INCBASC) list.h
word.o    : word.h     $(INCBASC) list.h agcollec.h
costab.o  : costab.h   $(INCBASC) list.h
tietze.o  : tietze.h   $(INCBASC) list.h word.h agcollec.h
agcollec.o: agcollec.h $(INCBASC) list.h word.h aggroup.h
aggroup.o : aggroup.h  $(INCBASC) list.h plist.h word.h agcollec.h finfield.h
pcpresen.o: pcpresen.h $(INCBASC) list.h plist.h word.h agcollec.h aggroup.h
list.o    : list.h     $(INCBASC) set.h permutat.h record.h
plist.o   : plist.h    $(INCBASC) list.h range.h record.h
set.o     : set.h      $(INCBASC) list.h plist.h range.h
vector.o  : vector.h   $(INCBASC) list.h plist.h range.h
vecffe.o  : vecffe.h   $(INCBASC) list.h plist.h range.h
range.o   : range.h    $(INCBASC) list.h plist.h
blister.o : blister.h  $(INCBASC) list.h plist.h range.h set.h
string.o  : string.h   $(INCBASC) list.h plist.h range.h
record.o  : record.h   $(INCBASC) plist.h string.h
statemen.o: statemen.h $(INCBASC) list.h
function.o: function.h $(INCBASC) plist.h record.h statemen.h
coding.o  : coding.h   $(INCBASC) list.h plist.h blister.h finfield.h vecffe.h


#############################################################################
##
#T  Miscallenous  . . . . . . . . . . . . . . . . . targets to clean up, etc.
##
##  The following targets perform some miscallenous tasks.
##
clean:
	rm -f *.o gap gapdjg.exe gapemx.exe gap.ttp objects



