# 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 Library 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
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library 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=\"1\"
GRADERMINORVER=\"1\"
MANAGERMINORVER=\"1\"
WEBPAGEMINORVER=\"1\"
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=-g -Wall $(DEFS)
INC=-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/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$(TCLTK)/include -I/usr/openwin/include
TCLSH=$(TCLTK)/bin/tclsh8.0
else
ifeq ($(UNAME),IRIX)
CC=cc
ARCHCOPT=-O3 $(DEFS)
INC=-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=Capa/$(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)/quizzer $(UNAME)/grader $(UNAME)/manager $(UNAME)/webpage $(UNAME)/answers
dmalloc:
$(MAKE) $(UNAME)/quizzer DBUGDEF="-DDMALLOC -DDMALLOC_FUNC_CHECK" DBUGLIB="-ldmalloc"
all.2: $(UNAME)/quizzer.2 $(UNAME)/grader.2 $(UNAME)/manager.2 $(UNAME)/webpage.2 $(UNAME)/answers
$(UNAME)/answers: $(UNAME)/answers.o
$(CC) $(COPT) -o $@ $< $(LIBPATH) $(CAPALIB) $(DBUGLIB) -lm -lfl
$(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 $@
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>