BEROOT=/Build_10.10.O
LIB_FLAGS=
DEBUG=-DPTHREAD_DEBUG -DPTHREAD_LOCK_DEBUG
# $Source: /usr/local/kcs/sys.DAVIS_800/pthreads/RCS/Makefile,v $
# $Revision: 1.2.98.5 $ $Author: sjn $
# $State: Exp $         $Locker:  $
# $Date: 95/12/23 12:14:15 $

### Re-define compilers for 10.0 Build Environment if it's present.
### Otherwise, assume build is under properly chrooted environment.
AR=             ../bld_tools/be_ar
CC=             ../bld_tools/be_cc
CONFIG=         ../bld_tools/config.internl
CPP=            ../bld_tools/be_cpp
AS=             ../bld_tools/be_as
LD=             ../bld_tools/be_ld
FDP=            ../bld_tools/be_fdp
LINT=           ../bld_tools/be_lint
M4=             ../bld_tools/be_m4
DEPENDS=        ../bld_tools/qdep
SCC=            ../bld_tools/scc
MAKE=		make

#
# Get the include files from the kernel and the BE
#
INCLUDE_DIR= -I.  -I$(BEROOT)/usr/include

#
# Compile defines
#	Required defines are:
#
#		-D_REENTRANT
#		-D_HPUX_SOURCE
#
#	Optional defines are:
#
#		-DPTHREAD_DEBUG
#		-DPTHREAD_LOCK_DEBUG
#		-DPTHREAD_LOG
#

IDENT=-D_HPUX_SOURCE -D_REENTRANT ${DEBUG}


#
# Std c flags for both shared and archived
#
# Need to do -s for final version to strip symbols.
#
CFLAGS= -Aa +e +O3 +DA1.0 +DS1.1 +ESlit -c $(IDENT) $(INCLUDE_DIR)

CCOPTS = $(LIB_FLAGS) $(CFLAGS)
LFLAGS  =  -u -Na50000 -Ns40000 -Zn5000

SRC = ../pthreads
H =   ../pthreads

SOURCES= $(SRC)/tepv.c  $(SRC)/specific.c $(SRC)/cond.c  \
      $(SRC)/pthread.c $(SRC)/vp.c $(SRC)/mutex.c $(SRC)/fork.c  \
      $(SRC)/stack.c   $(SRC)/cancel.c   $(SRC)/signal.c  $(SRC)/lock.s \
      $(SRC)/spin.c $(SRC)/machdep.c $(SRC)/private.c  \
      $(SRC)/rwlock.c $(SRC)/async.s $(SRC)/debug.c $(SRC)/extension.c \
      $(SRC)/stackdb.c $(SRC)/lwp_lib_calls.c $(SRC)/pthread_attr.c

OBJS= tepv.o  specific.o cond.o pthread.o vp.o mutex.o fork.o  \
      stack.o   cancel.o   signal.o  lock.o spin.o machdep.o private.o  \
      rwlock.o async.o debug.o extension.o stackdb.o lwp_lib_calls.o \
      pthread_attr.o

archive:	links libpthread.a

shared:		links libpthread.1

links: ./sys ./machine

./sys:
	if [ ! -d ./sys ] && [ ! -h ./sys ] ; \
	then  \
		if [ -d ../h ] ; \
		then  \
			ln -s ../h ./sys ; \
		fi \
	fi

./machine:
	if [ ! -d ./machine ] && [ ! -h ./machine ] ; \
	then  \
		if [ -d ../mach.700 ] ; \
		then  \
			ln -s ../mach.700 ./machine ; \
		elif [ -d ../mach.800 ] ; \
		then  \
			ln -s ../mach.800 ./machine ; \
		fi \
	fi

libpthread.a :  $(OBJS)
	$(AR) -r libpthread.a $(OBJS)

libpthread.1 :  $(OBJS)
	$(LD) +h libpthread.1 -x -b -o libpthread.1  $(OBJS)

clean:
	rm -rf $(OBJS) libpthread.1 libpthread.a

lint:
	$(LINT) ${LFLAGS} -Aa -Dlint $(IDENT) $(INCLUDE_DIR) ${SOURCES}
#	$(LINT) ${LFLAGS} -Aa -Dlint $(IDENT) $(INCLUDE_DIR) ${SOURCES} $(SRC)/Main_for_lint.c


lwp_lib_calls.o : $(SRC)/lwp_lib_calls.c
	$(CC) $(CCOPTS)  $(SRC)/lwp_lib_calls.c 

extension.o : $(SRC)/extension.c $(H)/pthread.h $(SRC)/internal.h $(SRC)/vp.h
	$(CC) $(CCOPTS) $(SRC)/extension.c 

debug.o : $(SRC)/debug.c $(H)/pthread.h $(SRC)/internal.h
	$(CC) $(CCOPTS) $(SRC)/debug.c 

rwlock.o : $(SRC)/rwlock.c $(H)/pthread.h $(SRC)/internal.h
	$(CC) $(CCOPTS) $(SRC)/rwlock.c 

private.o : $(SRC)/private.c $(H)/pthread.h $(SRC)/internal.h
	$(CC) $(CCOPTS) $(SRC)/private.c 

signal.o : $(SRC)/signal.c $(H)/pthread.h $(SRC)/internal.h $(SRC)/vp.h
	$(CC) $(CCOPTS) $(SRC)/signal.c 

cancel.o : $(SRC)/cancel.c $(H)/pthread.h $(SRC)/internal.h $(SRC)/vp.h
	$(CC) $(CCOPTS) $(SRC)/cancel.c 

specific.o : $(SRC)/specific.c $(H)/pthread.h $(SRC)/internal.h
	$(CC) $(CCOPTS) $(SRC)/specific.c 

pthread_attr.o : $(SRC)/pthread_attr.c $(H)/pthread.h $(SRC)/internal.h
	$(CC) $(CCOPTS) $(SRC)/pthread_attr.c 

pthread.o : $(SRC)/pthread.c $(H)/pthread.h $(SRC)/internal.h $(SRC)/vp.h
	$(CC) $(CCOPTS) $(SRC)/pthread.c 

vp.o : $(SRC)/vp.c $(H)/pthread.h $(SRC)/internal.h $(SRC)/vp.h
	$(CC) $(CCOPTS) $(SRC)/vp.c 

cond.o : $(SRC)/cond.c $(H)/pthread.h $(SRC)/internal.h
	$(CC) $(CCOPTS) $(SRC)/cond.c 

mutex.o : $(SRC)/mutex.c $(H)/pthread.h $(SRC)/internal.h
	$(CC) $(CCOPTS) $(SRC)/mutex.c 

fork.o : $(SRC)/fork.c $(H)/pthread.h $(SRC)/internal.h
	$(CC) $(CCOPTS) $(SRC)/fork.c 

stack.o : $(SRC)/stack.c $(H)/pthread.h $(SRC)/internal.h
	$(CC) $(CCOPTS) $(SRC)/stack.c 

spin.o : $(SRC)/spin.c $(H)/pthread.h $(SRC)/internal.h $(SRC)/vp.h
	$(CC) $(CCOPTS) $(SRC)/spin.c 

stackdb.o : $(SRC)/stackdb.c $(H)/pthread.h $(SRC)/internal.h $(SRC)/vp.h
	$(CC) $(CCOPTS) $(SRC)/stackdb.c 

tepv.o : $(SRC)/tepv.c $(H)/pthread.h $(SRC)/internal.h
	$(CC) $(CCOPTS) $(SRC)/tepv.c 

pthread_init.o : $(SRC)/pthread_init.c
	$(CC) $(CCOPTS) $(SRC)/pthread_init.c 

async.o : $(SRC)/async.s
	$(CC) $(CCOPTS) $(SRC)/async.s

lock.o : $(SRC)/lock.s
	$(CC) $(CCOPTS) $(SRC)/lock.s

machdep.o : $(SRC)/machdep.c $(H)/pthread.h $(SRC)/internal.h \
	    $(SRC)/thread_state.h $(SRC)/vp.h
	$(CC) $(CCOPTS) $(SRC)/machdep.c
