# ====================================================================
# Copyright (c) 1999 Ralf S. Engelschall. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer. 
#
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in
#    the documentation and/or other materials provided with the
#    distribution.
#
# 3. All advertising materials mentioning features or use of this
#    software must display the following acknowledgment:
#    "This product includes software developed by
#     Ralf S. Engelschall <rse@engelschall.com>."
#
# 4. Redistributions of any form whatsoever must retain the following
#    acknowledgment:
#    "This product includes software developed by
#     Ralf S. Engelschall <rse@engelschall.com>."
#
# THIS SOFTWARE IS PROVIDED BY RALF S. ENGELSCHALL ``AS IS'' AND ANY
# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL RALF S. ENGELSCHALL OR
# ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
# OF THE POSSIBILITY OF SUCH DAMAGE.
# ====================================================================

##
##  Makefile
##

V=0.9.0

SHELL   = /bin/sh

CC      = cc
CFLAGS  = -DMM_DEBUG -g -ggdb3 -pipe -Werror -Wall -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline
LDFLAGS =
LIBS    =
AR      = ar
RANLIB  = ranlib
RM      = rm -f

LIB     = libmm.a
MAN     = mm.3
OBJ     = mm_alloc.o mm_core.o

all: $(LIB) $(MAN)

$(LIB): $(OBJ)
	$(RM) $@
	$(AR) cr $@ $(OBJ)
	$(RANLIB) $@

mm_alloc.c mm_core.c: mm_conf.h mm.h

mm_conf.h:
	@$(SHELL) mm_conf.sh

test: mm_test
	./mm_test

debug: mm_test
	gdb mm_test

mm_test: mm_test.o $(LIB)
	$(CC) -o $@ mm_test.o $(LIB)

mm.3: mm.pod
	pod2man --section=3 \
	       --center="MM - Shared Memory Library" \
	       --release="MM - Shared Memory Library" \
	       mm.pod >mm.3

clean:
	$(RM) core *.core *.bak 
	$(RM) mm_test mm_test.o
	$(RM) $(OBJ)
	$(RM) $(LIB)

distclean: clean
	$(RM) mm_conf.h

realclean: distclean
	$(RM) $(MAN)

dist:
	gtar --no-recursion -cvf - `find * -depth -print | sort` |\
	tardy --user_number=0  --user_name=rse \
	      --group_number=0 --group_name=en \
	      --prefix=mm-$(V) - |\
	gzip --best >/tmp/mm-$(V).tar.gz && \
	mv /tmp/mm-$(V).tar.gz ..
	ls -l ../mm-$(V).tar.gz

