# Some versions of make, like SGI's, use the following variable to
# determine which shell to use for executing commands:
SHELL = /bin/sh
INCLUDE_DIR	= -I${PREFIX}/include -I${LOCALBASE}/include/tcl8.0 -I${LOCALBASE}/include/tk8.0 -I/usr/X11R6/include
# Libraries to use when linking: 
LIBS = -lm

TKLIBS= -L/usr/X11R6/lib -L$(PREFIX)/lib -L${LOCALBASE}/lib -ltk80 -ltcl80 -lX11

TARGET		= ../openbsd

CFLAGS		=  -g -DSIG_T=void -DMULTICAST -I. -DERROR_TEST

CC =		gcc
CC_SWITCHES =	${CFLAGS} 

ROBJS = protocol.o utils.o

SOBJS = protocol.o immserv.o sorttree.o utils.o

MOBJS = protocol.o mnmserver.o sorttree.o utils.o

all: $(TARGET)/imm $(TARGET)/immserv $(TARGET)/lscomp

$(TARGET)/mnm: $(ROBJS) main.o xlopen.o mcl.o
	$(CC) $(CFLAGS) main.o xlopen.o mcl.o $(ROBJS) $(LIBS) -o $(TARGET)/mnm

$(TARGET)/imm: $(ROBJS) tkAppInit.o imm_init.o imm.o xlopen_imm.o
	$(CC) $(CFLAGS) tkAppInit.o imm_init.o imm.o  xlopen_imm.o $(ROBJS) $(TKLIBS) $(LIBS) -o $(TARGET)/imm

$(TARGET)/immserv: $(SOBJS)
	$(CC) $(CFLAGS) $(SOBJS) $(LIBS) -o $(TARGET)/immserv

$(TARGET)/lscomp: lscomp.o protocol.o sorttree.o utils.o
	$(CC) $(CFLAGS) lscomp.o protocol.o sorttree.o utils.o $(LIBS) -o $(TARGET)/lscomp

clean:
	rm -f *.o tcl2c $(TARGET)/mnm  $(TARGET)/lscomp $(TARGET)/imm $(TARGET)/immserv

tcl2c: tcl2c.c
	$(CC) $(CFLAGS) tcl2c.c  $(LIBS) -o tcl2c

imm_init.c: tcl2c imm_def.tcl mcl.tcl Radio.tcl Listbox.tcl viewbox.tcl filebox.tcl mkHostname.tcl
	./tcl2c IMM_Init < imm_def.tcl > imm_init.c
	./tcl2c MCL < mcl.tcl >> imm_init.c
	./tcl2c RADIO < Radio.tcl >> imm_init.c
	./tcl2c LISTBOX < Listbox.tcl >> imm_init.c
	./tcl2c VIEWBOX < viewbox.tcl >> imm_init.c
	./tcl2c FILEBOX < filebox.tcl >> imm_init.c
	./tcl2c HOSTBOX < mkHostname.tcl >> imm_init.c
	./tcl2c SERVERBOX < mnmserv.tcl >> imm_init.c

imm_init.o:	imm_init.c

main.o:	main.c

mcl.o:	mcl.c

imm.o:	mcl.c
	gcc $(CFLAGS) -DIMM $(INCLUDE_DIR) -c mcl.c -o imm.o

xlopen_imm.o:	xlopen.c
	gcc $(CFLAGS) -DIMM $(INCLUDE_DIR) -c xlopen.c -o xlopen_imm.o 

tkAppInit.o:    tkAppInit.c
	gcc $(CFLAGS) $(INCLUDE_DIR) tkAppInit.c -c

protocol.o:   protocol.c

utils.o: utils.c

lscomp.o: lscomp.c

sorttree.o: sorttree.c immserv.h

immserv.o: immserv.c immserv.h

