# $Revision: 78.1 $ 
# makefile for ksh generated by mkold and hand modified
#
#    This makefile will build the standard HP-UX /bin/ksh as well
#    as the POSIX.2 conformant shell based on the ksh88 source.
#    The following macros have been defined to make the different
#    versions of the shell:
#	PSH		the name of the POSIX.2 executable
#	PSH_FLAGS	the flags to turn on the POSIX features
#	COMMON_OBJS	object files that are the same between
#			ksh and psh
#	KSH_OBJS	Object files unique to ksh (built w/o PSH_FLAGS)
#	PSH_OBJS	Object files unique to psh (buile with PSH_FLAGS)
#	COMMON_LOBJS	Commmon object files used to build the libraries
#	KSH_LOBJS	Object files unique to ksh's library 
#	PSH_LOBJS	Object files unique to psh's library (built with
#			PSH_FLAGS turned on)
#	LIBSH		The library ksh builds with
#	PLIBSH		The library psh builds with
#

SHLIB = shlib
LIBS = 
Ins = install
Inc = include
Sh = sh
SH = ksh


RDONLY = $(Ins)/readonly.ex

#
#    Theses are the macros to make ksh versus psh
#
PSH = psh
PSH_ARCH = psh.arch
PSH_FLAGS = -DPOSIX2 -DPOSIX3 -DKSHELL -DHP_BUILTIN -DSTAK_FIX
KSH_FLAGS = -DKSHELL -DHP_BUILTIN -DSTAK_FIX -D_LARGEFILE64_SOURCE

COMMON_OBJS = arith.o blok.o ctype.o defs.o edit.o \
		echo.o expand.o fault.o io.o \
		string.o stak.o word.o emacs.o vi.o hpux_rel.o 

COMMON_LOBJS =	adjust.o assign.o assnum.o cannon.o chkid.o convert.o \
		findnod.o gettree.o strmatch.o growaray.o gsort.o \
		linknod.o namscan.o rjust.o strdata.o streval.o \
		unassign.o utos.o valup.o 

KSH_OBJS =  args.o    builtin.o    cmd.o      main.o     msg.o       print.o \
            xec.o     name.o       macro.o    error.o	 service.o   test.o \
	    jobs.o    history.o
PSH_OBJS =  args-p.o  builtin-p.o  cmd-p.o    main-p.o   msg-p.o     print-p.o \
            xec-p.o   name-p.o     macro-p.o  error-p.o	 service-p.o test-p.o \
	    jobs-p.o  history-p.o

LIBSH = libsh.a
PLIBSH = libsh-p.a
PSH_LOBJS = optget-p.o  tilde-p.o 
KSH_LOBJS = optget.o    tilde.o  
######################################################

default:	$(SH) 

# This target may be implemented whenever someone needs it.
metrics:
	:

$(SH):	$(Inc)/sh_config.h  $(COMMON_OBJS) $(KSH_OBJS) $(LIBSH)
	$(CC) $(CFLAGS) -o $(SH) $(COMMON_OBJS) $(KSH_OBJS) $(LIBSH) $(LIBS)

$(PSH):	$(Inc)/sh_config.h $(COMMON_OBJS) $(PSH_OBJS) $(PLIBSH)
	$(CC) $(CFLAGS) -o $(PSH) $(COMMON_OBJS) $(PSH_OBJS) $(PLIBSH) $(LIBS)

$(PSH_ARCH):	$(Inc)/sh_config.h $(COMMON_OBJS) $(PSH_OBJS) $(PLIBSH)
	$(CC) -Wl,-a,archive $(CFLAGS) -o $(PSH_ARCH) $(COMMON_OBJS) \
	      $(PSH_OBJS) $(PLIBSH) $(LIBS)

$(RDONLY):
	cp $(Ins)/readonly $(RDONLY)
	chmod 755 $(RDONLY)

arith.o:	$(Sh)/arith.c $(Inc)/streval.h $(Inc)/sh_config.h \
		$(Inc)/defs.h $(Inc)/stak.h $(Inc)/shnodes.h \
		$(Inc)/brkincr.h $(Inc)/name.h $(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/arith.c

args.o:	$(Sh)/args.c $(Inc)/builtins.h $(Inc)/sym.h $(Inc)/jobs.h \
		$(Inc)/terminal.h $(Inc)/defs.h $(Inc)/stak.h \
		$(Inc)/shnodes.h $(Inc)/brkincr.h $(Inc)/name.h \
		$(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/args.c

args-p.o:	$(Sh)/args.c $(Inc)/builtins.h $(Inc)/sym.h $(Inc)/jobs.h \
		$(Inc)/terminal.h $(Inc)/defs.h $(Inc)/stak.h \
		$(Inc)/shnodes.h $(Inc)/brkincr.h $(Inc)/name.h \
		$(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(PSH_FLAGS) -c $(Sh)/args.c -o args-p.o

blok.o:	$(Sh)/blok.c $(Inc)/defs.h $(Inc)/stak.h $(Inc)/shnodes.h \
		$(Inc)/brkincr.h $(Inc)/name.h $(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/blok.c

builtin.o:	$(Sh)/builtin.c $(Inc)/sym.h $(Inc)/jobs.h \
		$(Inc)/terminal.h $(Inc)/builtins.h $(Inc)/history.h \
		$(Inc)/defs.h $(Inc)/stak.h $(Inc)/shnodes.h \
		$(Inc)/brkincr.h $(Inc)/name.h $(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/builtin.c

builtin-p.o:	$(Sh)/builtin.c $(Inc)/sym.h $(Inc)/jobs.h \
		$(Inc)/terminal.h $(Inc)/builtins.h $(Inc)/history.h \
		$(Inc)/defs.h $(Inc)/stak.h $(Inc)/shnodes.h \
		$(Inc)/brkincr.h $(Inc)/name.h $(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(PSH_FLAGS) -c $(Sh)/builtin.c -o builtin-p.o

cmd.o:	$(Sh)/cmd.c $(Inc)/test.h $(Inc)/builtins.h $(Inc)/history.h \
		$(Inc)/sym.h $(Inc)/defs.h $(Inc)/stak.h \
		$(Inc)/shnodes.h $(Inc)/brkincr.h $(Inc)/name.h \
		$(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/cmd.c

cmd-p.o:	$(Sh)/cmd.c $(Inc)/test.h $(Inc)/builtins.h $(Inc)/history.h \
		$(Inc)/sym.h $(Inc)/defs.h $(Inc)/stak.h \
		$(Inc)/shnodes.h $(Inc)/brkincr.h $(Inc)/name.h \
		$(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(PSH_FLAGS) -c $(Sh)/cmd.c -o cmd-p.o

ctype.o:	$(RDONLY) $(Sh)/ctype.c
	$(RDONLY) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) $(Sh)/ctype.c

defs.o:	$(Sh)/defs.c $(Inc)/timeout.h $(Inc)/edit.h $(Inc)/history.h \
		$(Inc)/sym.h $(Inc)/jobs.h $(Inc)/terminal.h \
		$(Inc)/defs.h $(Inc)/stak.h $(Inc)/shnodes.h \
		$(Inc)/brkincr.h $(Inc)/name.h $(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/defs.c

edit.o:	$(Sh)/edit.c $(Inc)/edit.h $(Inc)/history.h $(Inc)/sym.h \
		$(Inc)/builtins.h $(Inc)/terminal.h $(Inc)/defs.h \
		$(Inc)/stak.h $(Inc)/shnodes.h $(Inc)/brkincr.h \
		$(Inc)/name.h $(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/edit.c

echo.o:	$(Sh)/echo.c $(Inc)/defs.h $(Inc)/stak.h $(Inc)/shnodes.h \
		$(Inc)/brkincr.h $(Inc)/name.h $(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/echo.c

error.o:	$(Sh)/error.c $(Inc)/history.h $(Inc)/jobs.h \
		$(Inc)/terminal.h $(Inc)/defs.h $(Inc)/stak.h \
		$(Inc)/shnodes.h $(Inc)/brkincr.h $(Inc)/name.h \
		$(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/error.c

error-p.o:	$(Sh)/error.c $(Inc)/history.h $(Inc)/jobs.h \
		$(Inc)/terminal.h $(Inc)/defs.h $(Inc)/stak.h \
		$(Inc)/shnodes.h $(Inc)/brkincr.h $(Inc)/name.h \
		$(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(PSH_FLAGS) -c $(Sh)/error.c -o error-p.o

expand.o:	$(Sh)/expand.c $(Inc)/sh_config.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/expand.c

fault.o:	$(Sh)/fault.c $(Inc)/timeout.h $(Inc)/sym.h $(Inc)/jobs.h \
		$(Inc)/terminal.h $(Inc)/defs.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/fault.c

history.o:	$(Sh)/history.c $(Inc)/history.h $(Inc)/builtins.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/history.c

history-p.o:	$(Sh)/history.c $(Inc)/history.h $(Inc)/builtins.h
	$(CC) -I$(Inc) $(CFLAGS) $(PSH_FLAGS) -c $(Sh)/history.c -o history-p.o

hpux_rel.o:	hpux_rel.c
	$(CC) -c hpux_rel.c

io.o:	$(Sh)/io.c $(Inc)/history.h $(Inc)/sym.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/io.c

jobs.o:	$(Sh)/jobs.c $(Inc)/history.h $(Inc)/jobs.h $(Inc)/terminal.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/jobs.c

jobs-p.o:	$(Sh)/jobs.c $(Inc)/history.h $(Inc)/jobs.h $(Inc)/terminal.h
	$(CC) -I$(Inc) $(CFLAGS) $(PSH_FLAGS) -c $(Sh)/jobs.c -o jobs-p.o

macro.o:	$(Sh)/macro.c $(Inc)/builtins.h $(Inc)/sym.h $(Inc)/terminal.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/macro.c

macro-p.o:	$(Sh)/macro.c $(Inc)/builtins.h $(Inc)/sym.h $(Inc)/terminal.h
	$(CC) -I$(Inc) $(CFLAGS) $(PSH_FLAGS) -c $(Sh)/macro.c -o macro-p.o

main.o:	$(Sh)/main.c $(Inc)/builtins.h $(Inc)/timeout.h \
		$(Inc)/history.h $(Inc)/sym.h $(Inc)/jobs.h \
		$(Inc)/terminal.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/main.c

main-p.o:	$(Sh)/main.c $(Inc)/builtins.h $(Inc)/timeout.h \
		$(Inc)/history.h $(Inc)/sym.h $(Inc)/jobs.h \
		$(Inc)/terminal.h
	$(CC) -I$(Inc) $(CFLAGS) $(PSH_FLAGS) -c $(Sh)/main.c -o main-p.o

msg.o:	$(RDONLY) $(Sh)/msg.c $(Inc)/history.h $(Inc)/timeout.h $(Inc)/test.h \
		$(Inc)/builtins.h $(Inc)/sym.h
	$(RDONLY) $(CFLAGS) -I$(Inc) $(KSH_FLAGS) $(Sh)/msg.c

msg-p.o:	$(RDONLY) $(Sh)/msg.c $(Inc)/history.h $(Inc)/timeout.h \
		$(Inc)/test.h $(Inc)/builtins.h $(Inc)/sym.h
	$(RDONLY) $(CFLAGS) -I$(Inc) $(PSH_FLAGS) -o msg-p.o $(Sh)/msg.c

name.o:	$(Sh)/name.c $(Inc)/timeout.h $(Inc)/history.h \
		$(Inc)/builtins.h $(Inc)/sym.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/name.c

name-p.o:	$(Sh)/name.c $(Inc)/timeout.h $(Inc)/history.h \
		$(Inc)/builtins.h $(Inc)/sym.h
	$(CC) -I$(Inc) $(CFLAGS) $(PSH_FLAGS) -c $(Sh)/name.c -o name-p.o

print.o:	$(Sh)/print.c $(Inc)/builtins.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/print.c

print-p.o:	$(Sh)/print.c $(Inc)/builtins.h
	$(CC) -I$(Inc) $(CFLAGS) $(PSH_FLAGS) -c $(Sh)/print.c -o print-p.o

service.o:	$(Sh)/service.c $(Inc)/history.h $(Inc)/builtins.h \
		$(Inc)/sym.h $(Inc)/jobs.h $(Inc)/terminal.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/service.c

service-p.o:	$(Sh)/service.c $(Inc)/history.h $(Inc)/builtins.h \
		$(Inc)/sym.h $(Inc)/jobs.h $(Inc)/terminal.h
	$(CC) -I$(Inc) $(CFLAGS) $(PSH_FLAGS) -c $(Sh)/service.c -o service-p.o

string.o:	$(Sh)/string.c $(Inc)/sym.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/string.c

stak.o:	$(Sh)/stak.c
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/stak.c

test.o:	$(Sh)/test.c $(Inc)/sym.h $(Inc)/test.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/test.c

test-p.o:	$(Sh)/test.c $(Inc)/sym.h $(Inc)/test.h
	$(CC) -I$(Inc) $(CFLAGS) $(PSH_FLAGS) -c $(Sh)/test.c -o test-p.o

word.o:	$(Sh)/word.c $(Inc)/test.h $(Inc)/builtins.h $(Inc)/sym.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/word.c

xec.o:	$(Sh)/xec.c $(Inc)/builtins.h $(Inc)/test.h $(Inc)/sym.h \
		$(Inc)/jobs.h $(Inc)/terminal.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/xec.c

xec-p.o:	$(Sh)/xec.c $(Inc)/builtins.h $(Inc)/test.h $(Inc)/sym.h \
		$(Inc)/jobs.h $(Inc)/terminal.h
	$(CC) -I$(Inc) $(CFLAGS) $(PSH_FLAGS) -c $(Sh)/xec.c -o xec-p.o

emacs.o:	$(Sh)/emacs.c $(Inc)/edit.h $(Inc)/history.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/emacs.c

vi.o:	$(Sh)/vi.c $(Inc)/terminal.h $(Inc)/edit.h $(Inc)/history.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(Sh)/vi.c

libsh.a:	$(COMMON_LOBJS) $(KSH_LOBJS)
	ar cr libsh.a $(COMMON_LOBJS) $(KSH_LOBJS)

libsh-p.a:	$(COMMON_LOBJS) $(PSH_LOBJS)
	ar cr libsh-p.a $(COMMON_LOBJS) $(PSH_LOBJS)

adjust.o:	$(SHLIB)/adjust.c $(Inc)/name.h $(Inc)/flags.h $(Inc)/sh_config.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/adjust.c

assign.o:	$(SHLIB)/assign.c $(Inc)/name.h $(Inc)/flags.h $(Inc)/sh_config.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/assign.c

assnum.o:	$(SHLIB)/assnum.c $(Inc)/name.h $(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/assnum.c

cannon.o:	$(SHLIB)/cannon.c $(Inc)/sh_config.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/cannon.c

chkid.o:	$(SHLIB)/chkid.c $(Inc)/sh_config.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/chkid.c

convert.o:	$(SHLIB)/convert.c
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/convert.c

findnod.o:	$(SHLIB)/findnod.c $(Inc)/name.h $(Inc)/flags.h $(Inc)/sh_config.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/findnod.c

gettree.o:	$(SHLIB)/gettree.c $(Inc)/name.h $(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/gettree.c

strmatch.o:	$(SHLIB)/strmatch.c
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/strmatch.c

growaray.o:	$(SHLIB)/growaray.c $(Inc)/name.h $(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/growaray.c

gsort.o:	$(SHLIB)/gsort.c
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/gsort.c

linknod.o:	$(SHLIB)/linknod.c $(Inc)/name.h $(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/linknod.c

namscan.o:	$(SHLIB)/namscan.c $(Inc)/name.h $(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/namscan.c

rjust.o:	$(SHLIB)/rjust.c
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/rjust.c

strdata.o:	$(RDONLY) $(SHLIB)/strdata.c $(Inc)/streval.h $(Inc)/sh_config.h
	$(RDONLY) $(CFLAGS) -I$(Inc) $(KSH_FLAGS) $(SHLIB)/strdata.c

streval.o:	$(SHLIB)/streval.c $(Inc)/streval.h $(Inc)/sh_config.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/streval.c

tilde.o:	$(SHLIB)/tilde.c $(Inc)/sh_config.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/tilde.c

tilde-p.o:	$(SHLIB)/tilde.c $(Inc)/sh_config.h
	$(CC) -I$(Inc) $(CFLAGS) $(PSH_FLAGS) -c $(SHLIB)/tilde.c -o tilde-p.o

unassign.o:	$(SHLIB)/unassign.c $(Inc)/name.h $(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/unassign.c

utos.o:	$(SHLIB)/utos.c
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/utos.c

valup.o:	$(SHLIB)/valup.c $(Inc)/name.h $(Inc)/flags.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/valup.c

optget.o:	$(SHLIB)/optget.c $(Inc)/sh_config.h
	$(CC) -I$(Inc) $(CFLAGS) $(KSH_FLAGS) -c $(SHLIB)/optget.c

optget-p.o:	$(SHLIB)/optget.c $(Inc)/sh_config.h
	$(CC) -I$(Inc) $(CFLAGS) $(PSH_FLAGS) -c $(SHLIB)/optget.c -o optget-p.o

suid_exec:	suid_exec.o
	$(CC) $(CFLAGS) -o suid_exec suid_exec.o

suid_exec.o :	$(Sh)/suid_exec.c $(Inc)/sh_config.h
	$(CC) -I$(Inc) $(CFLAGS) -c $(Sh)/suid_exec.c

clobber :	clean
		rm -f ./$(SH) ./$(PSH) ./$(PSH_ARCH) ./$(LIBSH) ./$(PLIBSH) core

clean :
	rm -f *.o *.q $(RDONLY)
