#	Makefile for ss library
#
# Copyright 1987 by MIT Student Information Processing Board
# For copyright info, see mit-sipb-copyright.h.
#
#	$Header: Makefile,v 1.4 89/04/11 10:52:12 jtkohl Exp $
#	$Locker:  $

DEPEND=$(BUILDTOP)/util/makedepend/makedepend
DESTDIR=
# flags

CFLAGS=	-g -I../et

LINTFLAGS= -uhv -I../et

# for the library

OBJS=	ss_err.o \
	std_requests.o \
	invocation.o help.o \
	execute_cmd.o listen.o ss_perror.o prompt.o \
	request_tbl.o list_requests.o pager.o requests.o \
	data.o

SRCS=	invocation.c help.c \
	execute_cmd.c listen.c ss_perror.c prompt.c \
	request_tbl.c list_requests.c pager.c requests.c \
	data.c

# for make_commands program

MKCMDSOBJS=	make_commands.o mkcmds_utils.o string_utils.o options.o \
		ct.o cmd_tbl.lex.o

MKCMDSFILES=	make_commands.c mkcmds_utils.c string_utils.c options.c \
		ct.y cmd_tbl.lex.l

MKCMDSCSRCS=	make_commands.c mkcmds_utils.c string_utils.c options.c \
		ct.c cmd_tbl.lex.c

# include files

HFILES=	ss.h.orig ss_internal.h

# for 'tags' and dependencies

CFILES=	$(SRCS) $(MKCMDSCSRCS)

# for building archives

FILES=	$(SRCS) $(MKCMDSFILES) $(HFILES) \
	ss_err.et std_requests.ct Makefile \
	ct.y cmd_tbl.lex.l mit-sipb-copyright.h

#
# stuff to build
#

all:	ss.h libss.a make_commands

dist:	archives

tags:	TAGS

.SUFFIXES:	.ct

.c.o:
	$(CC) $(CFLAGS) -c $<

data.o:	data.c
	$(CC) $(CFLAGS) -c data.c

cmd_tbl.lex.o: cmd_tbl.lex.c
	$(CC) $(CFLAGS) -c cmd_tbl.lex.c

ct.o:	ct.c
	$(CC) $(CFLAGS) -c ct.c

#.ct.o:	make_commands
#	./make_commands $*.ct

# make lossage fixed here (can't handle extra prerequisites for defining rules)
std_requests.o: std_requests.ct make_commands
	./make_commands std_requests.ct

ss_err.o ss_err.h:	ss_err.et ../et/compile_et
	../et/compile_et ss_err.et

ct.c ct.h: ct.y
	rm -f ct.c
	rm -f ct.h
	yacc -d ct.y
	mv y.tab.c ct.c
	mv y.tab.h ct.h

#
libss.a:	$(OBJS)
	ar cruv libss.a $(OBJS)
	ranlib libss.a

libss.o:	$(OBJS)
	ld -r -s -o libss.o $(OBJS)
	chmod -x libss.o

lint:	llib-lss.ln

llib-lss.ln:	$(SRCS) ../et/llib-lcom_err.ln
	lint -Css $(LINTSFLAGS) $(SRCS) ../et/llib-lcom_err.ln | \
		egrep -v 'possible pointer alignment problem' | \
		egrep -v 'returns value which is'

make_commands:	$(MKCMDSOBJS)
	$(CC) $(CFLAGS) -o make_commands $(MKCMDSOBJS) -ll

TAGS:	$(CFILES)
	-etags $(CFILES)

archives:	ss.ar ss.tar


ss.ar:	$(FILES)
	ar cru $@ $(FILES)

ss.tar:	$(FILES)
	rm -f $@
	tar crf $@ $(FILES)

ss.h:	ss_err.h
	rm -f ss.h.new
	cat ss.h.orig > ss.h.new
	cat ss_err.h >> ss.h.new
	mv -f ss.h.new ss.h

clean:	
	rm -f *.et.c *.o *~ \#* *.bak core \
		ss_err.h ss.h ct.c cmd_tbl.lex.c lex.yy.c y.tab.c \
		libss.a make_commands \
		ss.ar ss.tar \
		TAGS llib-lss.ln

install: libss.a make_commands
	install -c -m 644 libss.a ${DESTDIR}/usr/athena/lib/libss.a
	ranlib ${DESTDIR}/usr/athena/lib/libss.a
	install -c -s -m 755 make_commands ${DESTDIR}/usr/athena
	install -c ss.h ${DESTDIR}/usr/include
	
config:
	-mkdir $(DESTDIR)/util/ss
	-mkdir $(DESTDIR)/util/ss/profiled
	for i in $(FILES); do \
		rm -f ${DESTDIR}/util/ss/`basename $$i`; \
		ln -s $(SRCDIR)/util/ss/$$i ${DESTDIR}/util/ss/`basename $$i`; done
	rm -f ${DESTDIR}/util/ss/Makefile
	cp ${SRCDIR}/util/ss/Makefile ${DESTDIR}/util/ss/Makefile
	chmod 644 ${DESTDIR}/util/ss/Makefile

# 'make depend' code
depend: $(CFILES) ss.h
	@echo "### Now computing dependencies"
	@$(DEPEND) -s "# DO NOT DELETE" $(CFLAGS) $(CFILES)

#
# the last constant line in the makefile should be...
# DO NOT DELETE THIS LINE

invocation.o: invocation.c ss_internal.h /usr/include/stdio.h
invocation.o: /usr/include/strings.h ss.h ../et/mit-sipb-copyright.h
help.o: help.c /usr/include/sys/param.h /usr/include/machine/machparam.h
help.o: /usr/include/signal.h /usr/include/sys/types.h /usr/include/sys/file.h
help.o: /usr/include/sys/wait.h ss_internal.h /usr/include/stdio.h
help.o: /usr/include/strings.h ss.h ../et/mit-sipb-copyright.h
help.o: /usr/include/sys/types.h /usr/include/sys/dir.h
execute_cmd.o: execute_cmd.c ss_internal.h /usr/include/stdio.h
execute_cmd.o: /usr/include/strings.h ss.h ../et/mit-sipb-copyright.h
listen.o: listen.c ../et/mit-sipb-copyright.h ss_internal.h
listen.o: /usr/include/stdio.h /usr/include/strings.h ss.h
listen.o: /usr/include/signal.h
ss_perror.o: ss_perror.c ../et/mit-sipb-copyright.h ss_internal.h
ss_perror.o: /usr/include/stdio.h /usr/include/strings.h ss.h
prompt.o: prompt.c ../et/mit-sipb-copyright.h /usr/include/stdio.h
prompt.o: ss_internal.h /usr/include/stdio.h /usr/include/strings.h ss.h
request_tbl.o: request_tbl.c ../et/mit-sipb-copyright.h ss_internal.h
request_tbl.o: /usr/include/stdio.h /usr/include/strings.h ss.h
list_requests.o: list_requests.c ../et/mit-sipb-copyright.h ss_internal.h
list_requests.o: /usr/include/stdio.h /usr/include/strings.h ss.h
list_requests.o: /usr/include/sys/wait.h
pager.o: pager.c ../et/mit-sipb-copyright.h /usr/include/stdio.h
requests.o: requests.c ../et/mit-sipb-copyright.h /usr/include/stdio.h
requests.o: ss_internal.h /usr/include/stdio.h /usr/include/strings.h ss.h
data.o: data.c /usr/include/stdio.h ss_internal.h /usr/include/stdio.h
data.o: /usr/include/strings.h ss.h ../et/mit-sipb-copyright.h
make_commands.o: make_commands.c ../et/mit-sipb-copyright.h
make_commands.o: /usr/include/stdio.h /usr/include/sys/file.h
make_commands.o: /usr/include/strings.h ss.h
mkcmds_utils.o: mkcmds_utils.c ../et/mit-sipb-copyright.h /usr/include/stdio.h
mkcmds_utils.o: ss.h
string_utils.o: string_utils.c ../et/mit-sipb-copyright.h
string_utils.o: /usr/include/strings.h
options.o: options.c ../et/mit-sipb-copyright.h /usr/include/stdio.h ss.h
ct.o: ct.c /usr/include/stdio.h ../et/mit-sipb-copyright.h ss.h
cmd_tbl.lex.o: cmd_tbl.lex.c /usr/include/stdio.h /usr/include/string.h
cmd_tbl.lex.o: /usr/include/strings.h ct.h ../et/mit-sipb-copyright.h
