#/* Copyright 1988,1990,1993,1994 by Paul Vixie
# * All rights reserved
# *
# * Distribute freely, except: don't remove my name from the source or
# * documentation (don't take credit for my work), mark your changes (don't
# * get me blamed for your possible bugs), don't alter or remove this
# * notice.  May be sold if buildable source is provided to buyer.  No
# * warrantee of any kind, express or implied, is included with this
# * software; use at your own risk, responsibility for damages (if any) to
# * anyone resulting from the use of this software rests entirely with the
# * user.
# *
# * Send bug reports, bug fixes, enhancements, requests, flames, etc., and
# * I'll try to keep a version up to date.  I can be reached as follows:
# * Paul Vixie          <paul@vix.com>          uunet!decwrl!vixie!paul
# */

# Makefile for Osiris Host Integrity System
#

#################################### begin configurable stuff
#<<DESTROOT is assumed to have ./etc, ./bin, and ./man subdirectories>>
DESTROOT	=	$(DESTDIR)/usr
DESTSBIN	=	$(DESTROOT)/sbin
DESTBIN		=	$(DESTROOT)/bin
DESTMAN		=	$(DESTROOT)/man
#<<need bitstring.h>>
INCLUDE		+=	-I. -I../openssl/include -I./src/libfileapi \
			-I./src/libosiris -I./src -I./src/osirisd
#INCLUDE	=
#<<need getopt()>>
#LIBS		=
LIBS		= libosiris.a libfileapi.a -L../openssl -static -lssl -lcrypto
#<<optimize or debug?>>
#OPTIM		=	$(RPM_OPT_FLAGS)
OPTIM		=	-O2
#OPTIM		=	-g
#<<ATT or BSD or POSIX?>>
# (ATT untested)
#COMPAT		=	-DATT
#(BSD is only needed if <sys/params.h> does not define it, as on ULTRIX)
#COMPAT		=	-DBSD
# (POSIX)
COMPAT		=	-DPOSIX
#<<lint flags of choice?>>
LINTFLAGS	=	-hbxa $(INCLUDE) $(COMPAT) $(DEBUGGING)
#<<want to use a nonstandard CC?>>
#CC		=	vcc
#<<manifest defines>>
DEFS		= -s
#(SGI IRIX systems need this)
#DEFS		=	-D_BSD_SIGNALS -Dconst=
#<<the name of the BSD-like install program>>
#INSTALL = installbsd
INSTALL = install
#<<any special load flags>>
LDFLAGS		+= -s
#################################### end configurable stuff

SHELL		=	/bin/sh
CFLAGS		=	$(OPTIM) $(INCLUDE) $(COMPAT) $(DEFS)

INFOS		=	README CHANGES FEATURES INSTALL CONVERSION THANKS MAIL

OSIRISD_OBJ	=	src/osirisd/osirisd.c \
			src/osirisd/scanner.c \
			src/osirisd/rootpriv.c \
			src/osirisd/logging.c \
			src/osirisd/modules.c \
			src/osirisd/modules/mod_users/mod_users.o \
			src/osirisd/modules/mod_groups/mod_groups.o \
			src/osirisd/modules/mod_kmods/mod_kmods.o \
            src/osirisd/modules/mod_nvram/mod_nvram.o 

LIBFILEAPI_OBJ	=	src/libfileapi/fileapi.o

LIBOSIRIS_OBJ	= 	src/libosiris/list.o src/libosiris/message.o \
			src/libosiris/socketapi.o src/libosiris/error.o \
			src/libosiris/status.o src/libosiris/string_list.o \
			src/libosiris/configuration.o src/libosiris/filter.o \
			src/libosiris/utilities.o src/libosiris/strptime.o \
			src/libosiris/filter_sticky.o \
			src/libosiris/filter_suid.o \
			src/libosiris/filter_guid.o \
			src/libosiris/ssl_utilities.o \
			src/libosiris/filter_executable.o \
			src/libosiris/filter_perl.o \
			src/libosiris/filter_python.o \
			src/libosiris/filter_script.o \
			src/libosiris/filter_gzip.o \
			src/libosiris/filter_zip.o \
			src/libosiris/filter_tar.o \
			src/libosiris/filter_pgp.o \
			src/libosiris/filter_rpm.o \
			src/libosiris/filter_uid.o \
			src/libosiris/filter_gid.o \
			src/libosiris/filter_user.o \
			src/libosiris/filter_group.o \
			src/libosiris/filter_header.o \
			src/libosiris/filter_file.o \
			src/libosiris/filter_suffix.o \
			src/libosiris/filter_md5.o \
			src/libosiris/filter_sha.o \
			src/libosiris/filter_ripemd.o \
			src/libosiris/filter_permissions.o \
			src/libosiris/filter_sid.o \
			src/libosiris/regex.o \
			src/libosiris/debug.o \
			src/libosiris/strcasestr.o \
			src/libosiris/scan_record.o
		

all		: 	osirisd

lint		:
			lint $(LINTFLAGS) $(LINT_CRON) $(LIBS) \
			|grep -v "constant argument to NOT" 2>&1
			lint $(LINTFLAGS) $(LINT_CRONTAB) $(LIBS) \
			|grep -v "constant argument to NOT" 2>&1

libfileapi	:	$(LIBFILEAPI_OBJ)
			$(AR) -cr libfileapi.a $(LIBFILEAPI_OBJ)
			$(RANLIB) libfileapi.a

libosiris	:	$(LIBOSIRIS_OBJ)
			$(AR) -cr libosiris.a $(LIBOSIRIS_OBJ)
			$(RANLIB) libosiris.a

osirisd		:	$(OSIRISD_OBJ) libosiris libfileapi
			$(CC) $(INCLUDE) $(LDFLAGS) -o osirisd \
			$(OSIRISD_OBJ) $(LIBS)

install		:	all
			$(INSTALL) -c -m 755 osirisd $(DESTSBIN)/osirisd

clean		:
			rm -f $(LIBOSIRIS_OBJ) osirisd libosiris.a libfileapi.a \
			core tags *~ #*
			find . -name "*.o" | xargs rm -rf

kit		:	$(SHAR_SOURCE)
			makekit -m -s99k $(SHAR_SOURCE)
$(LIBOSIRIS_OBJ):	src/libosiris/libosiris.h
$(LIBFILEAPI_OBJ):	src/libfileapi/fileapi.h
