#	Copyright (c) 1984 AT&T
#	  All Rights Reserved

#	THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T
#	The copyright notice above does not evidence any
#	actual or intended publication of such source code.

#ident	"@(#)libc-m32:makefile	1.43"
#
#  makefile for libc/m32
#
#
# The variable PROF is null by default, causing profiled object to be
# maintained.  If profiled object is not desired, the reassignment
# PROF=@# should appear in the make command line.
#

.SUFFIXES:

.SUFFIXES: .o .s .c .p

ROOT=
M4=m4
#M4=$(PFX)m4
M4ARGS=m4.def reg.def
CC=$(PFX)cc
OFLAG=
CFLAGS=$(OFLAG) $(DEFLIST) $(SDEFLIST) $(INCLIST)
PROF=@#
NONPROF=
INC=/usr/include
INCLIBC=../inc
DEFLIST=
SDEFLIST=
INCLIST=-I$(INCLIBC) -I$(INC)
MAKEARGS=	CC="$(CC)" OFLAG=$(OFLAG) ROOT=$(ROOT) M4=$(M4) $(IGN) -e

OBJECTS=\
csu/crt0.o	  csu/mcrt0.o	    csu/initfpu.o     \
csu/ghsstubs.o	  csu/motstubs.o	\
gen/abs.o	  \
gen/getpfn.o	  gen/setjmp.o	\
sys/access.o      sys/acct.o		\
sys/alarm.o	  sys/chdir.o	    sys/chmod.o	      sys/chown.o	\
sys/chroot.o	  sys/close.o	    sys/creat.o	      sys/dup.o		\
sys/execve.o	  sys/exit.o	    sys/fcntl.o	      sys/fork.o	\
sys/fstat.o	  sys/getegid.o	    sys/geteuid.o     sys/getgid.o	\
sys/getpid.o	  sys/getppid.o	    sys/getuid.o      sys/gtty.o	\
sys/ioctl.o	  sys/kill.o	    sys/link.o	      sys/lseek.o	\
sys/locking.o	  \
sys/mknod.o	  sys/mount.o	    sys/msgsys.o      sys/nice.o	\
sys/open.o	  sys/pause.o	    sys/pipe.o	      sys/profil.o	\
sys/plock.o	  sys/uadmin.o	    \
sys/ptrace.o	  sys/read.o	    sys/sbrk.o	      sys/semsys.o	\
sys/putmsg.o      sys/getmsg.o      sys/poll.o \
sys/setgid.o	  sys/setpgrp.o	    sys/setuid.o      sys/shmsys.o	\
sys/sigcall.o	  \
sys/signal.o	  sys/stat.o	    sys/stime.o	      sys/stty.o	\
sys/sync.o	  sys/sys3b.o   \
sys/_syslocal.o    sys/syscall.o     sys/time.o	\
sys/times.o	  sys/ulimit.o	    sys/umask.o	      sys/umount.o	\
sys/uname.o	  sys/unlink.o	    sys/ustat.o	      sys/utime.o	\
sys/wait.o	  sys/write.o	    \
sys/advfs.o       sys/rdebug.o      sys/rfstart.o     \
sys/rfstop.o      sys/rfsys.o	    sys/rmount.o      sys/rumount.o     \
sys/unadvfs.o     \
sys/fstatfs.o	  sys/getdents.o    sys/mkdir.o	      \
sys/rmdir.o	  sys/statfs.o      sys/sysfs.o


POBJECTS=\
csu/crt0.p	csu/mcrt0.p	csu/initfpu.p     \
csu/ghsstubs.p	  csu/motstubs.p	\
gen/abs.p	\
gen/getpfn.p	\
sys/access.p    sys/acct.p	\
sys/alarm.p	sys/chdir.p	sys/chmod.p	 sys/chown.p	\
sys/chroot.p	sys/close.p	sys/creat.p	 sys/dup.p		\
sys/execve.p	sys/exit.p	sys/fcntl.p	 sys/fork.p	\
sys/fstat.p	sys/getegid.p	sys/geteuid.p    sys/getgid.p	\
sys/getpid.p	sys/getppid.p	sys/getuid.p     sys/gtty.p	\
sys/ioctl.p	sys/kill.p	sys/link.p	 sys/lseek.p	\
sys/mknod.p	sys/mount.p	sys/msgsys.p     sys/nice.p	\
sys/open.p	sys/pause.p	sys/pipe.p	 sys/profil.p	\
sys/plock.p	\
sys/ptrace.p	sys/read.p	sys/sbrk.p	 sys/semsys.p	\
sys/putmsg.p    sys/getmsg.p    sys/poll.p       \
sys/setgid.p	sys/setpgrp.p	sys/setuid.p     sys/shmsys.p	\
sys/sigcall.p	  \
sys/signal.p	sys/stat.p	sys/stime.p	 sys/stty.p	\
sys/sync.p	sys/sys3b.p  \
sys/_syslocal.p  sys/syscall.p    sys/time.p	\
sys/times.p	sys/ulimit.p	sys/umask.p	 sys/umount.p	\
sys/uname.p	sys/unlink.p	sys/ustat.p	 sys/utime.p	\
sys/advfs.p     sys/rdebug.p    \
sys/rfstart.p   sys/rfstop.p    sys/rmount.p     sys/rumount.p     \
sys/rfsys.p	sys/unadvfs.p   \
sys/fstatfs.p   sys/getdents.p  sys/mkdir.p      \
sys/rmdir.p	sys/statfs.p    sys/sysfs.p 	 \
sys/wait.p	sys/write.p	sys/uadmin.p


all:
	$(NONPROF)$(MAKE) $(MAKEARGS) nonprof PROF=@#
#	$(PROF)$(MAKE) $(MAKEARGS) prof NONPROF=@#

prof:	$(VERIFY) $(POBJECTS)
#	$(PROF)cd crt ; $(MAKE) $(MAKEARGS) prof NONPROF=@#

nonprof: $(VERIFY) $(OBJECTS)
	$(NONPROF)cd crt ; $(MAKE) $(MAKEARGS) nonprof PROF=@#

.c.o:
	$(CC) $(CFLAGS) -c $*.c && mv $(*F).o $*.o

.c.p:
	$(CC) $(CFLAGS) -c -p $*.c && mv $(*F).o $*.p

.s.o:
	$(M4) $(M4ARGS) -DMCOUNT=\;  $*.s >$(*F).s
	$(CC) $(CFLAGS) -c $(*F).s && mv $(*F).o $*.o
	-rm $(*F).s

.s.p:
	$(M4) $(M4ARGS) mcount.def  $*.s >$(*F).s
	$(CC) $(CFLAGS) -c -p $(*F).s  && mv $(*F).o $*.p
	-rm $(*F).s

archive:
	#
	# (m88k)
	# Note that "archive" is invoked with libc/object as current directory.
	#
	# figure out the correct ordering for all the archive modules except
	#	cuexit and fakcu, which must go at end of archive.
	mv cuexit.o cuexit.x
	mv fakcu.o fakcu.x
	#mv sigcall.o sigcall.x
	mv signal.o signal.x
	mv kill.o kill.x
	mv getpid.o getpid.x
	mv cerror.o cerror.x
	-rm -f old_toupper.o old_tolower.o
#
#	Comment the following line if you are on a sun
	$(LORDER) *.o | tsort >objlist
#
#	Uncomment the following line if you are on a sun
#	cp ../objlist .
	mv cuexit.x cuexit.o
	mv fakcu.x fakcu.o
	#mv sigcall.x sigcall.o
	mv signal.x signal.o
	mv kill.x kill.o
	mv getpid.x getpid.o
	mv cerror.x cerror.o
	#
	# build the archive with the modules in correct order.
	$(AR) q ../lib.libc `cat objlist` \
	signal.o \
	kill.o getpid.o cerror.o cuexit.o fakcu.o
#	$(PROF)#
#	$(PROF)# build the profiled library archive, first renaming the
#	$(PROF)#	.p (profiled object) modules to .o
#	$(PROF)for i in *.p ; do mv $$i `basename $$i .p`.o ; done
#	if [ "$(PROF)" != "@#" ]; \
#	then \
#	$(PROF)$(AR) q ../libp.libc `cat objlist` \
#	signal.o \
#	kill.o getpid.o cerror.o cuexit.o fakcu.o  ; \
#	fi

clean:
	-rm -f *.o
	-rm -f *.p
	-rm -f *.s

clobber: clean
	-rm -f */*.o
	-rm -f */*.p

verify:
	@echo ; \
	echo "routine"; \
	echo "	TARGET:    $(TARGET)"; \
	echo "	ROOT:      $(ROOT)"; \
	echo "	SRC:       $(SRC)"; \
	echo "	CC:        $(CC)"; \
	echo "	DEFLIST:   $(DEFLIST)"; \
	echo "	CFLAGS:    $(CFLAGS)"; \
	echo ; \
	$(CHKYN) "Continue" || exit 1 ;
