# Makefile for quizzer and grader and manager # Copyright (C) 1992-2000 Michigan State University # # The CAPA system is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # # The CAPA system is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public # License along with the CAPA system; see the file COPYING. If not, # write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # As a special exception, you have permission to link this program # with the TtH/TtM library and distribute executables, as long as you # follow the requirements of the GNU GPL in regard to all of the # software in the executable aside from TtH/TtM. # Guy Albertelli II 1998 # The target all creates TCL/TK dependent programs. # The target all.2 creates stand alone programs. MAJORVER=\"5.1\" QUIZZERMINORVER=\"6\" GRADERMINORVER=\"6\" MANAGERMINORVER=\"6\" WEBPAGEMINORVER=\"6\" UNAME=$(shell uname) QUIZZERDEFS=-DQUIZZERMINORVER=$(QUIZZERMINORVER) GRADERDEFS=-DGRADERMINORVER=$(GRADERMINORVER) MANAGERDEFS=-DMANAGERMINORVER=$(MANAGERMINORVER) WEBPAGEDEFS=-DWEBPAGEMINORVER=$(WEBPAGEMINORVER) DEFS=$(QUIZZERDEFS) $(GRADERDEFS) $(MANAGERDEFS) $(WEBPAGEDEFS) \ -DMAJORVER=$(MAJORVER) -DARCHSTR=\"$(UNAME)\" \ -DCOMPILE_DATE=\"`date +'%b-%d-%Y'`\" ifeq ($(UNAME),Linux) #CC=i486-linuxlibc1-gcc #TCLTK=/home/albertel/tcltk/lib5/ #ARCHLIB= $(TCLTK)/lib/libtk8.0.a $(TCLTK)/lib/libtcl8.0.a /usr/lib/libl.a $(LIBPATH) /usr/i486-linuxlibc1/lib/libX11.a /usr/lib/libdl.a /usr/lib/libm.a /usr/lib/libc.a LIBPATH=-L/usr/lib/libc_debug/ CC=gcc TCLTK=/home/albertel/tcltk/egcc #TCLTK=/nfs/mileva/tcltk/egcc #TCLTK=/mnt2/tcltk/egcc ARCHLIB=-lfl $(TCLTK)/lib/libtk8.0.a $(TCLTK)/lib/libtcl8.0.a -lm $(LIBPATH) -lX11 -ldl ARCHLIBTCL=-lfl $(TCLTK)/lib/libtcl8.0.a -lm $(LIBPATH) -ldl LIBPATH=-L/usr/X11R6/lib/ ARCHCOPT=-O2 -Wall $(DEFS) INC=-I. -I.. -I$(TCLTK)/include TCLSH=$(TCLTK)/bin/tclsh8.0 else ifeq ($(UNAME),OSF1) CC=cc ARCHCOPT=-O3 -Olimit 768 $(DEFS) #ARCHCOPT=-g $(DEFS) INC=-I. -I.. -I/usr/local/include ARCHLIB=-ly -ll -lm -lX11 \ /usr/local/lib/libtk8.0.a /usr/local/lib/libtcl8.0.a ARCHLIBTCL=-ll /usr/local/lib/libtcl8.0.a -lm $(LIBPATH) LIBPATH=-L/usr/X11/lib TCLSH=tclsh8.0 else ifeq ($(UNAME),SunOS) CC=cc TCLTK=/home/capa/source/tcl8.0/unix ARCHLIB=-ldl -ly -ll -lm -lX11 -lsocket -lnsl $(TCLTK)/lib/libtk8.0.a $(TCLTK)/lib/libtcl8.0.a ARCHLIBTCL=-ldl -ly -ll -lm -lsocket -lnsl $(TCLTK)/lib/libtcl8.0.a LIBPATH=-L/usr/openwin/lib ARCHCOPT=-xO3 $(DEFS) INC=-I. -I.. -I$(TCLTK)/include -I/usr/openwin/include TCLSH=$(TCLTK)/bin/tclsh8.0 else ifeq ($(UNAME),IRIX) CC=cc ARCHCOPT=-O3 $(DEFS) INC=-I. -I.. -I/usr/people/capa/include ARCHLIB=-ll -ltk8.0 -ltcl8.0 -lm -lX11 LIBPATH=-L/usr/people/capa/lib TCLSH=/usr/people/capa/bin/tclsh endif endif endif endif LIB=$(DBUGLIB) $(ARCHLIB) LIBTCL=$(DBUGLIB) $(ARCHLIBTCL) COPT=$(ARCHCOPT) $(DBUGDEF) CAPALIB=../pProj/$(UNAME)/libcapa5.1.a QUIZZEROBJ=$(UNAME)/quizzer.o $(UNAME)/quizzer.init.o $(UNAME)/common.funct.o $(UNAME)/quizzer.funct.o $(CAPALIB) QUIZZEROBJ2=$(UNAME)/quizzer.init.o $(UNAME)/quizzer.tcl.o $(UNAME)/common.funct.o $(UNAME)/quizzer.funct.o $(CAPALIB) GRADEROBJ=$(UNAME)/grader.o $(UNAME)/grader.init.o $(UNAME)/common.funct.o $(UNAME)/grader.funct.o $(CAPALIB) GRADEROBJ2=$(UNAME)/grader.init.o $(UNAME)/grader.tcl.o $(UNAME)/common.funct.o $(UNAME)/grader.funct.o $(CAPALIB) MANAGERGENOBJ=$(UNAME)/manager.init.o $(UNAME)/common.funct.o $(UNAME)/manager.funct.o $(UNAME)/scorer.funct.o \ $(UNAME)/scorer.init.o $(UNAME)/scorertoset.o $(CAPALIB) MANAGEROBJ=$(UNAME)/manager.o $(MANAGERGENOBJ) MANAGEROBJ2=$(UNAME)/manager.tcl.o $(MANAGERGENOBJ) WEBPAGEOBJ=$(UNAME)/webpage.o $(UNAME)/webpage.init.o $(UNAME)/common.funct.o $(UNAME)/webpage.funct.o $(CAPALIB) WEBPAGEOBJ2=$(UNAME)/webpage.init.o $(UNAME)/webpage.tcl.o $(UNAME)/common.funct.o $(UNAME)/webpage.funct.o $(CAPALIB) all: $(UNAME) $(UNAME)/quizzer $(UNAME)/grader $(UNAME)/manager $(UNAME)/webpage $(UNAME)/answers dmalloc: $(MAKE) $(UNAME)/quizzer DBUGDEF="-DDMALLOC -DDMALLOC_FUNC_CHECK" DBUGLIB="-ldmalloc" all.2: $(UNAME) $(UNAME)/quizzer.2 $(UNAME)/grader.2 $(UNAME)/manager.2 $(UNAME)/webpage.2 $(UNAME)/answers $(UNAME): mkdir $(UNAME) $(UNAME)/answers: $(UNAME)/answers.o $(CC) $(COPT) -o $@ $< $(LIBPATH) $(CAPALIB) $(DBUGLIB) -lm -ll $(UNAME)/quizzer: $(QUIZZEROBJ) $(CC) $(COPT) -o $@ $(QUIZZEROBJ) $(LIBPATH) $(LIB) $(UNAME)/quizzer.2: $(QUIZZEROBJ2) $(CC) $(COPT) -o $@ $(QUIZZEROBJ2) $(LIBPATH) $(LIB) $(UNAME)/grader: $(GRADEROBJ) $(CC) $(COPT) -o $@ $(GRADEROBJ) $(LIBPATH) $(LIB) $(UNAME)/grader.2: $(GRADEROBJ2) $(CC) $(COPT) -o $@ $(GRADEROBJ2) $(LIBPATH) $(LIB) $(UNAME)/manager: $(MANAGEROBJ) $(CC) $(COPT) -o $@ $(MANAGEROBJ) $(LIBPATH) $(LIB) $(UNAME)/manager.2: $(MANAGEROBJ2) $(CC) $(COPT) -o $@ $(MANAGEROBJ2) $(LIBPATH) $(LIB) $(UNAME)/webpage: $(WEBPAGEOBJ) $(CC) $(COPT) -o $@ $(WEBPAGEOBJ) $(LIBPATH) $(LIBTCL) $(UNAME)/webpage.2: $(WEBPAGEOBJ2) $(CC) $(COPT) -o $@ $(WEBPAGEOBJ2) $(LIBPATH) $(LIBTCL) $(UNAME)/%.tcl.o: %.tcl.c $(CC) $(COPT) $(INC) -c $< -o $@ quizzer.tcl.c: quizzer.tcl $(UNAME)/tcl2c-qz common.tcl utils.tcl quizzer.templates.tcl ./$(UNAME)/tcl2c-qz -qz -o $@ common.tcl utils.tcl quizzer.templates.tcl $< grader.tcl.c: grader.tcl $(UNAME)/tcl2c-qz common.tcl utils.tcl gradesubjective.tcl ./$(UNAME)/tcl2c-qz -gd -o $@ common.tcl utils.tcl $< manager.tcl.c: manager.tcl $(UNAME)/tcl2c-qz common.tcl utils.tcl \ scorer.tcl classl.tcl capastats.tcl seating.tcl groupemail.tcl ./$(UNAME)/tcl2c-qz -mn -o $@ common.tcl utils.tcl \ $< scorer.tcl classl.tcl capastats.tcl \ seating.tcl webpage.tcl.c: webpage.tcl $(UNAME)/tcl2c-qz ./$(UNAME)/tcl2c-qz -wb -o $@ $< $(UNAME)/tcl2c-qz: $(CC) $(COPT) $(INC) -o $@ tcl2c-qz.c $(LIBPATH) $(LIB) clean: rm -f $(UNAME)/*.o *[~#] $(UNAME)/quizzer $(UNAME)/quizzer.2 quizzer.tcl.c \ $(UNAME)/grader $(UNAME)/grader.2 grader.tcl.c \ $(UNAME)/manager $(UNAME)/manager.2 manager.tcl.c \ $(UNAME)/webpage webpage.tcl.c \ $(UNAME)/answers $(UNAME)/tcl2c-qz managerclean: rm -f $(UNAME)/*.o *[~#] $(UNAME)/manager $(UNAME)/manager.2 manager.tcl.c graderclean: rm -f $(UNAME)/*.o *[~#] $(UNAME)/grader $(UNAME)/grader.2 grader.tcl.c quizzerclean: rm -f $(UNAME)/*.o *[~#] $(UNAME)/quizzer $(UNAME)/quizzer.2 quizzer.tcl.c $(UNAME)/%.o: %.c $(CC) $(COPT) $(INC) -c $< -o $@