#$Revision: 78.2 $ 
# makefile for posix-sh/ksh generated by mkold and hand modified
#
#    This makefile will build the standard HP-UX POSIX.2 conformant 
#    shell based on the OSF/1.2 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
#	PSH_OBJS	Object files unique to psh (buile with PSH_FLAGS)
#

#
# OSF_NLS is the OSF 4-byte EUC library  (see CFLAGS also)
# LIBS=-lOSF_NLS
#

LIBS=
PSH = sh
KSH = ksh
PSH_ARCH = sh.arch
#MK_HDR=/usr/local/bin/xmkcatdefs
#MSGHDRS = $(PSH)_msg.h
GENCAT = gencat
CATFILE = psh.cat
MSGFILES = ksh.msg

PSH_FLAGS = -DPOSIX -DPOSIX2 -DPOSIX3

CFLAGS = -Ae +e -D__STDC_EXT__ \
	 -D_POSIX2_SOURCE -D_XOPEN_SOURCE \
	 -D_AES_SOURCE -D_XPG2 -D_HPUX_SOURCE\
	 -DKSHELL -DHP_BUILTIN -DSTAK_FIX \
	 -D_LARGEFILE64_SOURCE \
	 -O
#
# The following OSF include and libc are removed for 10.0. However, they can
# be turned on for testing OSF 4-byte EUC features on test machine te720-01.
# 
#        -I /usr/OSF/include \
#	 -L /usr/OSF/libc
#

COM_OBJS =  adjust.o	args.o		arith.o		assign.o \
	    assnum.o 	cannon.o	chkid.o	\
	    convert.o	ctype.o		defs.o \
	    edit.o	emacs.o 	error.o \
	    expand.o	fault.o		findnod.o	gettree.o \
	    growaray.o	gsort.o		history.o	hpux_rel.o \
	    io.o 	jobs.o		linknod.o	\
	    namscan.o \
	    optget.o 	rjust.o		\
	    stak.o	strdata.o	streval.o	string.o \
	    strmatch.o 	test.o		unassign.o \
	    utos.o 	valup.o		vi.o		word.o 

KSH_OBJS =  builtin_k.o echo_k.o macro_k.o main_k.o \
	    msg_k.o	cmd_k.o  name_k.o print_k.o \
	    service_k.o tilde_k.o xec_k.o

PSH_OBJS =  builtin.o echo.o macro.o main.o  \
	    msg.o	cmd.o  name.o print.o \
	    service.o tilde.o xec.o 


######################################################

default:	$(PSH)

$(PSH):	sh_config.h $(COM_OBJS) $(PSH_OBJS)
	$(CC) $(CFLAGS) $(PSH_FLAGS) -o $(PSH) $(PSH_OBJS) $(COM_OBJS) $(LIBS)
	$(GENCAT) $(CATFILE) $(MSGFILES)

$(KSH):	sh_config.h $(COM_OBJS) $(KSH_OBJS)
	$(CC) $(CFLAGS) -o $(KSH) $(KSH_OBJS) $(COM_OBJS) $(LIBS)
	$(GENCAT) $(CATFILE) $(MSGFILES)

sh.sbin: sh_config.h $(PSH_OBJS) $(COM_OBJS)
	$(CC) $(CFLAGS) $(PSH_FLAGS) -D_NO_SETLOCALE -c name.c
	$(CC) $(CFLAGS) $(PSH_FLAGS) -D_NO_SETLOCALE -c main.c
	$(CC) -Wl,-a,archive -D_NO_SETLOCALE $(CFLAGS) -o $@ \
			     $(PSH_OBJS) $(COM_OBJS) $(LIBS)

sh.9to10: sh_config.h $(PSH_OBJS) $(COM_OBJS)
	$(CC) $(CFLAGS) $(PSH_FLAGS) -D_NO_SETLOCALE -c name.c
	$(CC) $(CFLAGS) $(PSH_FLAGS) -D_NO_SETLOCALE -c main.c
	$(CC) -Wl,-a,archive -D_NO_SETLOCALE $(CFLAGS) -o $@ \
			     $(PSH_OBJS) $(COM_OBJS) $(LIBS) \
			     /usr/lib/kern10stub.o

$(PSH_ARCH):	sh_config.h $(PSH_OBJS) $(COM_OBJS)
	$(CC) $(CFLAGS) $(PSH_FLAGS) -D_NO_SETLOCALE -c name.c
	$(CC) $(CFLAGS) $(PSH_FLAGS) -D_NO_SETLOCALE -c main.c
	$(CC) -Wl,-a,archive -D_NO_SETLOCALE $(CFLAGS) -o $(PSH_ARCH) \
			     $(PSH_OBJS) $(COM_OBJS) $(LIBS)

#$(MSGHDRS):
#	$(MK_HDR) $(PSH) $(PSH).msg > $(PSH)_msg

adjust.o:	adjust.c name.h flags.h sh_config.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c adjust.c

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

arith.o:	arith.c streval.h sh_config.h \
		defs.h stak.h shnodes.h \
		brkincr.h name.h flags.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c arith.c

assign.o:	assign.c name.h flags.h sh_config.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c assign.c

assnum.o:	assnum.c name.h flags.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c assnum.c

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

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

cannon.o:	cannon.c sh_config.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c cannon.c

chkid.o:	chkid.c sh_config.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c chkid.c

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

cmd_k.o:	cmd.c test.h builtins.h history.h \
		sym.h defs.h stak.h \
		shnodes.h brkincr.h name.h \
		flags.h
	$(CC) $(CFLAGS) -c cmd.c -o cmd_k.o

convert.o:	convert.c
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c convert.c

ctype.o:	ctype.c
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c ctype.c

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

echo.o: echo.c defs.h stak.h shnodes.h \
                brkincr.h name.h flags.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c echo.c

echo_k.o: echo.c defs.h stak.h shnodes.h \
                brkincr.h name.h flags.h
	$(CC) $(CFLAGS) -c echo.c -o echo_k.o

edit.o:	edit.c edit.h history.h sym.h \
		builtins.h terminal.h defs.h \
		stak.h shnodes.h brkincr.h \
		name.h flags.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c edit.c

emacs.o:	emacs.c edit.h history.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c emacs.c

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

expand.o:       expand.c sh_config.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c expand.c

fault.o:	fault.c timeout.h sym.h jobs.h \
		terminal.h defs.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c fault.c

findnod.o:	findnod.c name.h flags.h sh_config.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c findnod.c

gettree.o:	gettree.c name.h flags.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c gettree.c

growaray.o:     growaray.c name.h flags.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c growaray.c

gsort.o:	gsort.c
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c gsort.c

history.o:	history.c history.h builtins.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c history.c

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

io.o:	io.c history.h sym.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c io.c

jobs.o: jobs.c history.h jobs.h terminal.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c jobs.c

linknod.o:	linknod.c name.h flags.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c linknod.c

macro.o:	macro.c builtins.h sym.h terminal.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c macro.c

macro_k.o:	macro.c builtins.h sym.h terminal.h
	$(CC) $(CFLAGS) -c macro.c -o macro_k.o

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

main_k.o:	main.c builtins.h timeout.h \
		history.h sym.h jobs.h \
		terminal.h
	$(CC) $(CFLAGS) -c main.c -o main_k.o

msg.o:  msg.c history.h timeout.h test.h \
                builtins.h sym.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c msg.c

msg_k.o:  msg.c history.h timeout.h test.h \
                builtins.h sym.h
	$(CC) $(CFLAGS) -c msg.c -o msg_k.o

name.o:	name.c timeout.h history.h \
		builtins.h sym.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c name.c

name_k.o:	name.c timeout.h history.h \
		builtins.h sym.h
	$(CC) $(CFLAGS) -c name.c -o name_k.o

namscan.o:	namscan.c name.h flags.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c namscan.c

optget.o:	optget.c sh_config.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c optget.c

print.o:        print.c builtins.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c print.c

print_k.o:        print.c builtins.h
	$(CC) $(CFLAGS) -c print.c -o print_k.o

rjust.o:	rjust.c
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c rjust.c

service.o:	service.c history.h builtins.h \
		sym.h jobs.h terminal.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c service.c

service_k.o:	service.c history.h builtins.h \
		sym.h jobs.h terminal.h
	$(CC) $(CFLAGS) -c service.c -o service_k.o

stak.o:	stak.c
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c stak.c

strdata.o:      strdata.c streval.h sh_config.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c strdata.c

streval.o:      streval.c streval.h sh_config.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c streval.c

string.o:	string.c sym.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c string.c

strmatch.o:	strmatch.c
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c strmatch.c

test.o: test.c sym.h test.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c test.c

tilde.o:	tilde.c sh_config.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c tilde.c

tilde_k.o:	tilde.c sh_config.h
	$(CC) $(CFLAGS) -c tilde.c -o tilde_k.o

unassign.o:	unassign.c name.h flags.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c unassign.c

utos.o:	utos.c
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c utos.c

valup.o:	valup.c name.h flags.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c valup.c

vi.o:	vi.c terminal.h edit.h history.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c vi.c

word.o:	word.c test.h builtins.h sym.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c word.c

xec.o:	xec.c builtins.h test.h sym.h \
		jobs.h terminal.h
	$(CC) $(CFLAGS) $(PSH_FLAGS) -c xec.c

xec_k.o:   xec.c builtins.h test.h sym.h \
		jobs.h terminal.h
	$(CC) $(CFLAGS)  -c xec.c -o xec_k.o

clobber :       clean
	rm -f ./$(PSH) ./$(PSH_ARCH) core sh.sbin

clean :
	rm -f *.o *.q
