##  $Id: Makefile,v 1.57 2003/12/26 03:23:28 rra Exp $

include ../Makefile.global

top		= ..
CFLAGS		= $(GCFLAGS) $(SSLINC)

ALL		= nnrpd

SOURCES		= article.c cache.c group.c commands.c line.c list.c misc.c \
		  newnews.c nnrpd.c perl.c perm.c post.c python.c \
		  sasl_config.c tls.c track.c

INCLUDES	= cache.h nnrpd.h post.h sasl_config.h tls.h

OBJECTS		= $(SOURCES:.c=.o)

INSTALLED	= $(D)$(PATHBIN)/nnrpd

all: $(ALL)

warnings:
	$(MAKE) COPT='$(WARNINGS)' all

clean:
	rm -f *.o $(ALL) nnrpdp profiled
	rm -rf .libs

clobber distclean: clean
	rm -f tags

tags ctags: $(SOURCES) $(INCLUDES)
	$(CTAGS) $(SOURCES) $(INCLUDES) ../lib/*.c ../include/*.h


##  Compilation rules.

NNRPDLIBS	= $(LIBHIST) $(LIBSTORAGE) $(LIBINN) $(STORAGE_LIBS) \
		  $(PYTHON_LIBS) $(SSL_LDFLAGS) $(SSL_LIBS) $(LIBS) \
		  $(PERL_LIBS)

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

perl.o:		perl.c   ; $(CC) $(CFLAGS) $(PERL_CPPFLAGS) -c perl.c
python.o:	python.c ; $(CC) $(CFLAGS) $(PYTHON_CPPFLAGS) -c python.c

nnrpd: $(OBJECTS) $(LIBHIST) $(LIBSTORAGE) $(LIBINN)
	$(LIBLD) $(LDFLAGS) -o $@ $(OBJECTS) $(NNRPDLIBS)


##  Installation rules.  Installation commands set in Makefile.global.

install: $(INSTALLED)

$(D)$(PATHBIN)/nnrpd:	nnrpd	; $(LI_XPUB) $? $@

$(LIBINN):	; (cd ../lib ; $(MAKE))
$(LIBSTORAGE):	; (cd ../storage ; $(MAKE))
$(LIBHIST):	; (cd ../history ; $(MAKE))


##  Profiling.  These rules have not been checked for a while and may need
##  some work.

profiled: nnrpdp

nnrpdp: $(SOURCES)
	rm -f $(OBJECTS)
	$(MAKEPROFILING) nnrpd
	mv nnrpd nnrpdp
	rm -f $(OBJECTS)


##  Dependencies.  Default list, below, is probably good enough.

depend:	$(SOURCES)
	$(MAKEDEPEND) '$(CFLAGS) $(PERL_CPPFLAGS) $(PYTHON_CPPFLAGS)' \
	    $(SOURCES)

# DO NOT DELETE THIS LINE -- make depend depends on it.
article.o: article.c ../include/config.h ../include/inn/defines.h \
 ../include/clibrary.h ../include/inn/innconf.h \
 ../include/inn/messages.h ../include/inn/wire.h nnrpd.h \
 ../include/portable/socket.h ../include/portable/time.h \
 ../include/inn/qio.h ../include/libinn.h ../include/nntp.h \
 ../include/paths.h ../include/storage.h ../include/inn/vector.h \
 ../include/inn/timer.h ../include/ov.h ../include/inn/history.h tls.h \
 cache.h
cache.o: cache.c ../include/config.h ../include/inn/defines.h \
 ../include/clibrary.h ../include/inn/innconf.h ../include/inn/tst.h \
 ../include/inn/list.h ../include/libinn.h ../include/storage.h \
 cache.h
group.o: group.c ../include/config.h ../include/inn/defines.h \
 ../include/clibrary.h ../include/inn/innconf.h nnrpd.h \
 ../include/portable/socket.h ../include/portable/time.h \
 ../include/inn/qio.h ../include/libinn.h ../include/nntp.h \
 ../include/paths.h ../include/storage.h ../include/inn/vector.h \
 ../include/inn/timer.h ../include/ov.h ../include/inn/history.h
commands.o: commands.c ../include/config.h ../include/inn/defines.h \
 ../include/clibrary.h ../include/portable/wait.h nnrpd.h \
 ../include/portable/socket.h ../include/portable/time.h \
 ../include/inn/qio.h ../include/libinn.h ../include/nntp.h \
 ../include/paths.h ../include/storage.h ../include/inn/vector.h \
 ../include/inn/timer.h ../include/ov.h ../include/inn/history.h \
 ../include/inn/innconf.h ../include/inn/messages.h
line.o: line.c ../include/config.h ../include/inn/defines.h \
 ../include/clibrary.h ../include/inn/messages.h nnrpd.h \
 ../include/portable/socket.h ../include/portable/time.h \
 ../include/inn/qio.h ../include/libinn.h ../include/nntp.h \
 ../include/paths.h ../include/storage.h ../include/inn/vector.h \
 ../include/inn/timer.h
list.o: list.c ../include/config.h ../include/inn/defines.h \
 ../include/clibrary.h nnrpd.h ../include/portable/socket.h \
 ../include/portable/time.h ../include/inn/qio.h ../include/libinn.h \
 ../include/nntp.h ../include/paths.h ../include/storage.h \
 ../include/inn/vector.h ../include/inn/timer.h ../include/ov.h \
 ../include/inn/history.h ../include/inn/innconf.h \
 ../include/inn/messages.h
misc.o: misc.c ../include/config.h ../include/inn/defines.h \
 ../include/clibrary.h ../include/inn/innconf.h nnrpd.h \
 ../include/portable/socket.h ../include/portable/time.h \
 ../include/inn/qio.h ../include/libinn.h ../include/nntp.h \
 ../include/paths.h ../include/storage.h ../include/inn/vector.h \
 ../include/inn/timer.h tls.h sasl_config.h
newnews.o: newnews.c ../include/config.h ../include/inn/defines.h \
 ../include/clibrary.h ../include/inn/innconf.h \
 ../include/inn/messages.h ../include/inn/wire.h nnrpd.h \
 ../include/portable/socket.h ../include/portable/time.h \
 ../include/inn/qio.h ../include/libinn.h ../include/nntp.h \
 ../include/paths.h ../include/storage.h ../include/inn/vector.h \
 ../include/inn/timer.h ../include/ov.h ../include/inn/history.h \
 cache.h
nnrpd.o: nnrpd.c ../include/config.h ../include/inn/defines.h \
 ../include/clibrary.h ../include/portable/setproctitle.h \
 ../include/portable/wait.h ../include/inn/innconf.h \
 ../include/inn/messages.h ../include/libinn.h ../include/ov.h \
 ../include/storage.h ../include/inn/history.h nnrpd.h \
 ../include/portable/socket.h ../include/portable/time.h \
 ../include/inn/qio.h ../include/nntp.h ../include/paths.h \
 ../include/inn/vector.h ../include/inn/timer.h tls.h sasl_config.h
perl.o: perl.c ../include/config.h ../include/inn/defines.h \
 ../include/clibrary.h ../include/inn/innconf.h nnrpd.h \
 ../include/portable/socket.h ../include/portable/time.h \
 ../include/inn/qio.h ../include/libinn.h ../include/nntp.h \
 ../include/paths.h ../include/storage.h ../include/inn/vector.h \
 ../include/inn/timer.h post.h ../include/ppport.h \
 ../include/innperl.h
perm.o: perm.c ../include/config.h ../include/inn/defines.h \
 ../include/clibrary.h ../include/portable/wait.h \
 ../include/conffile.h ../include/inn/innconf.h ../include/innperl.h \
 nnrpd.h ../include/portable/socket.h ../include/portable/time.h \
 ../include/inn/qio.h ../include/libinn.h ../include/nntp.h \
 ../include/paths.h ../include/storage.h ../include/inn/vector.h \
 ../include/inn/timer.h
post.o: post.c ../include/config.h ../include/inn/defines.h \
 ../include/clibrary.h ../include/inn/innconf.h nnrpd.h \
 ../include/portable/socket.h ../include/portable/time.h \
 ../include/inn/qio.h ../include/libinn.h ../include/nntp.h \
 ../include/paths.h ../include/storage.h ../include/inn/vector.h \
 ../include/inn/timer.h ../include/ov.h ../include/inn/history.h \
 post.h
python.o: python.c ../include/config.h ../include/inn/defines.h \
 ../include/clibrary.h ../include/inn/innconf.h nnrpd.h \
 ../include/portable/socket.h ../include/portable/time.h \
 ../include/inn/qio.h ../include/libinn.h ../include/nntp.h \
 ../include/paths.h ../include/storage.h ../include/inn/vector.h \
 ../include/inn/timer.h ../include/inn/hashtab.h
sasl_config.o: sasl_config.c ../include/config.h \
 ../include/inn/defines.h ../include/clibrary.h \
 ../include/inn/innconf.h nnrpd.h ../include/portable/socket.h \
 ../include/portable/time.h ../include/inn/qio.h ../include/libinn.h \
 ../include/nntp.h ../include/paths.h ../include/storage.h \
 ../include/inn/vector.h ../include/inn/timer.h sasl_config.h
tls.o: tls.c ../include/config.h ../include/inn/defines.h nnrpd.h \
 ../include/portable/socket.h ../include/portable/time.h \
 ../include/inn/qio.h ../include/libinn.h ../include/nntp.h \
 ../include/paths.h ../include/storage.h ../include/inn/vector.h \
 ../include/inn/timer.h tls.h
track.o: track.c ../include/config.h ../include/inn/defines.h \
 ../include/clibrary.h ../include/inn/innconf.h nnrpd.h \
 ../include/portable/socket.h ../include/portable/time.h \
 ../include/inn/qio.h ../include/libinn.h ../include/nntp.h \
 ../include/paths.h ../include/storage.h ../include/inn/vector.h \
 ../include/inn/timer.h
