# Don't edit Makefile!  Use conf-* for configuration.

SHELL=/bin/sh

default: it


prog: service-config svscan-config rules-config ipc-config ipcx-config \
tcp-config tcpx-config

instcheck: load instcheck.o hier.o auto_home.o unix.a byte.a
	./load instcheck hier.o auto_home.o unix.a byte.a 

it: prog install instcheck

load: warn-auto.sh conf-ld
	( cat warn-auto.sh; \
	echo 'main="$$1"; shift'; \
	echo exec "`head -1 conf-ld`" \
	'-o "$$main" "$$main".o $${1+"$$@"}' \
	) > load
	chmod 755 load

compile: warn-auto.sh conf-cc
	( cat warn-auto.sh; \
	echo exec "`head -1 conf-cc`" '-c $${1+"$$@"}' \
	) > compile
	chmod 755 compile

service-config.o: compile \
service-config.c \
strerr.h exit.h generic-conf.h buffer.h service-conf.h fmt.h
	./compile service-config.c

generic-conf.o: compile \
generic-conf.c \
strerr.h buffer.h open.h generic-conf.h
	./compile generic-conf.c

service-conf.o: compile \
service-conf.c \
strerr.h generic-conf.h buffer.h fmt.h
	./compile service-conf.c

makelib: warn-auto.sh systype
	( cat warn-auto.sh; \
	echo 'main="$$1"; shift'; \
	echo 'rm -f "$$main"'; \
	echo 'ar cr "$$main" $${1+"$$@"}'; \
	case "`cat systype`" in \
	sunos-5.*) ;; \
	unix_sv*) ;; \
	irix64-*) ;; \
	irix-*) ;; \
	dgux-*) ;; \
	hp-ux-*) ;; \
	sco*) ;; \
	*) echo 'ranlib "$$main"' ;; \
	esac \
	) > makelib
	chmod 755 makelib

systype: find-systype.sh conf-cc conf-ld trycpp.c x86cpuid.c
	( cat warn-auto.sh; \
	echo CC=\'`head -1 conf-cc`\'; \
	echo LD=\'`head -1 conf-ld`\'; \
	cat find-systype.sh; \
	) | sh > systype

alloc.o: compile \
alloc.c \
alloc.h error.h
	./compile alloc.c

alloc_re.o: compile \
alloc_re.c \
alloc.h byte.h
	./compile alloc_re.c

buffer.o: compile \
buffer.c \
buffer.h
	./compile buffer.c

buffer_0.o: compile \
buffer_0.c \
buffer.h
	./compile buffer_0.c

buffer_1.o: compile \
buffer_1.c \
buffer.h
	./compile buffer_1.c

buffer_2.o: compile \
buffer_2.c \
buffer.h
	./compile buffer_2.c

unix.a: makelib alloc.o alloc_re.o buffer.o buffer_0.o buffer_1.o \
buffer_2.o buffer_get.o buffer_put.o buffer_copy.o buffer_read.o \
buffer_write.o error.o error_str.o fmt_ulong.o open_read.o open_trunc.o \
str_len.o stralloc_cat.o stralloc_catb.o stralloc_cats.o stralloc_eady.o \
stralloc_opyb.o stralloc_opys.o stralloc_pend.o strerr_die.o strerr_sys.o
	./makelib unix.a alloc.o alloc_re.o buffer.o buffer_0.o buffer_1.o \
	buffer_2.o buffer_get.o buffer_put.o buffer_copy.o buffer_read.o \
	buffer_write.o error.o error_str.o fmt_ulong.o open_read.o open_trunc.o \
	str_len.o stralloc_cat.o stralloc_catb.o stralloc_cats.o stralloc_eady.o \
	stralloc_opyb.o stralloc_opys.o stralloc_pend.o strerr_die.o \
	strerr_sys.o

buffer_get.o: compile \
buffer_get.c \
buffer.h byte.h error.h
	./compile buffer_get.c

buffer_put.o: compile \
buffer_put.c \
buffer.h str.h byte.h error.h
	./compile buffer_put.c

buffer_copy.o: compile \
buffer_copy.c \
buffer.h
	./compile buffer_copy.c

buffer_read.o: compile \
buffer_read.c \
buffer.h
	./compile buffer_read.c

buffer_write.o: compile \
buffer_write.c \
buffer.h
	./compile buffer_write.c

error.o: compile \
error.c \
error.h
	./compile error.c

error_str.o: compile \
error_str.c \
error.h
	./compile error_str.c

fmt_ulong.o: compile \
fmt_ulong.c \
fmt.h
	./compile fmt_ulong.c

open_read.o: compile \
open_read.c \
open.h
	./compile open_read.c

open_trunc.o: compile \
open_trunc.c \
open.h
	./compile open_trunc.c

str_len.o: compile \
str_len.c \
str.h
	./compile str_len.c

stralloc_cat.o: compile \
stralloc_cat.c \
byte.h stralloc.h gen_alloc.h
	./compile stralloc_cat.c

byte.a: makelib byte_copy.o byte_cr.o
	./makelib byte.a byte_copy.o byte_cr.o

stralloc_catb.o: compile \
stralloc_catb.c \
stralloc.h gen_alloc.h byte.h
	./compile stralloc_catb.c

stralloc_cats.o: compile \
stralloc_cats.c \
byte.h str.h stralloc.h gen_alloc.h
	./compile stralloc_cats.c

stralloc_eady.o: compile \
stralloc_eady.c \
alloc.h stralloc.h gen_alloc.h gen_allocdefs.h
	./compile stralloc_eady.c

stralloc_opyb.o: compile \
stralloc_opyb.c \
stralloc.h gen_alloc.h byte.h
	./compile stralloc_opyb.c

stralloc_opys.o: compile \
stralloc_opys.c \
byte.h str.h stralloc.h gen_alloc.h
	./compile stralloc_opys.c

stralloc_pend.o: compile \
stralloc_pend.c \
alloc.h stralloc.h gen_alloc.h gen_allocdefs.h
	./compile stralloc_pend.c

strerr_die.o: compile \
strerr_die.c \
buffer.h exit.h strerr.h
	./compile strerr_die.c

strerr_sys.o: compile \
strerr_sys.c \
error.h strerr.h
	./compile strerr_sys.c

service-config: load service-config.o generic-conf.o service-conf.o \
unix.a byte.a
	./load service-config generic-conf.o service-conf.o unix.a byte.a 

byte_copy.o: compile \
byte_copy.c \
byte.h
	./compile byte_copy.c

byte_cr.o: compile \
byte_cr.c \
byte.h
	./compile byte_cr.c

svscan-config: warn-auto.sh svscan-config.sh conf-home
	cat warn-auto.sh svscan-config.sh \
	| sed s}HOME}"`head -1 conf-home`"}g \
	> svscan-config
	chmod 755 svscan-config

rules-config: load rules-config.o generic-conf.o unix.a byte.a
	./load rules-config generic-conf.o unix.a byte.a 

rules-config.o: compile \
rules-config.c \
strerr.h exit.h generic-conf.h buffer.h
	./compile rules-config.c

ipc-config: warn-auto.sh ipc-config.sh conf-home
	cat warn-auto.sh ipc-config.sh \
	| sed s}HOME}"`head -1 conf-home`"}g \
	> ipc-config
	chmod 755 ipc-config

ipcx-config: warn-auto.sh ipcx-config.sh conf-home
	cat warn-auto.sh ipcx-config.sh \
	| sed s}HOME}"`head -1 conf-home`"}g \
	> ipcx-config
	chmod 755 ipcx-config

tcp-config: warn-auto.sh tcp-config.sh conf-home
	cat warn-auto.sh tcp-config.sh \
	| sed s}HOME}"`head -1 conf-home`"}g \
	> tcp-config
	chmod 755 tcp-config

tcpx-config: warn-auto.sh tcpx-config.sh conf-home
	cat warn-auto.sh tcpx-config.sh \
	| sed s}HOME}"`head -1 conf-home`"}g \
	> tcpx-config
	chmod 755 tcpx-config

install: load install.o hier.o auto_home.o unix.a byte.a
	./load install hier.o auto_home.o unix.a byte.a 

install.o: compile \
install.c \
buffer.h strerr.h error.h open.h exit.h
	./compile install.c

hier.o: compile \
hier.c \
auto_home.h
	./compile hier.c

auto_home.o: compile \
auto_home.c
	./compile auto_home.c

auto_home.c: auto-str conf-home
	./auto-str auto_home "`head -1 conf-home`" > auto_home.c

auto-str: load auto-str.o unix.a byte.a
	./load auto-str unix.a byte.a 

auto-str.o: compile \
auto-str.c \
buffer.h exit.h
	./compile auto-str.c

rts: warn-auto.sh rts.sh conf-home
	cat warn-auto.sh rts.sh \
	| sed s}HOME}"`head -1 conf-home`"}g \
	> rts
	chmod 755 rts

instcheck.o: compile \
instcheck.c \
strerr.h error.h exit.h
	./compile instcheck.c

test: prog rts rts.tests rts.exp
	./rts | cmp - rts.exp >&2

setup: it install
	./install

check: it instcheck
	./instcheck
