# See /ux/core/libs/libc/make-ReadMe for build info.

#
#  History:
#       5/30/95 jlee    removed setpgrp and sigpause from this 
#                       They are now being built in 'sys' with
#                       SPEC 1170 defined behavior.
#

#Davis intra-library versioning info, old versions in relpreDAV/stub/
COBJS= dav_vers.o

STUBS_DAV= \
fgetacl.o \
fsetacl.o \
getaccess.o \
getacl.o \
setacl.o

STUBS= \
 __fattach.o  \
 __fdetach.o  \
 __msem_init.o  \
 __setpgrp4.o  \
 __sigpause2.o  \
 __syscall.o  \
 __sysconf.o  \
 _brk.o   \
 _exit.o   \
 _msleep.o  \
 _mwakeup.o  \
 _privgrp.o  \
 _sigreturn.o  \
 _sigsetreturn.o \
 _sigsetstatemask.o \
 _sigvector.o  \
 _ulimit.o  \
 _utssys.o  \
 accept.o  \
 access.o  \
 acct.o   \
 adjtime.o  \
 aio_cancel.o \
 aio_error.o \
 aio_fsync.o \
 __aio_read_syscall.o \
 aio_return.o \
 aio_suspend.o \
 __aio_write_syscall.o \
 alarm.o   \
 async_daemon.o  \
 audctl.o  \
 audswitch.o  \
 audwrite.o  \
 bfactl.o  \
 bind.o   \
 cds.o   \
 chdir.o   \
 chmod.o   \
 chown.o   \
 chroot.o  \
 clock_getres.o  \
 clock_gettime.o \
 clock_settime.o \
 close.o   \
 cnodeid.o  \
 cnodes.o  \
 connect.o  \
 creat.o   \
 cs.o   \
 dup.o   \
 dup2.o   \
 exect.o   \
 execve.o  \
 exportfs.o  \
 fchdir.o  \
 fchmod.o  \
 fchown.o  \
 fcntl.o   \
 fork.o   \
 fpathconf.o  \
 fsctl.o   \
 fss.o   \
 fstat.o   \
 fstat64.o  \
 fstatfs.o  \
 fstatvfs.o  \
 fsync.o   \
 ftime.o   \
 ftruncate.o  \
 ftruncate64.o \
 get_sysinfo.o  \
 getaudid.o  \
 getaudproc.o  \
 getdents.o  \
 getdirentries.o \
 getdomainname.o \
 getegid.o  \
 geteuid.o  \
 getevent.o  \
 getfh.o   \
 getgid.o  \
 getgroups.o  \
 getitimer.o  \
 getmount_cnt.o  \
 getmount_entry.o \
 getmsg.o  \
 getnumfds.o  \
 getpeername.o  \
 getpgrp.o  \
 getpgrp2.o  \
 getpid.o  \
 getpmsg.o  \
 getppid.o  \
 getpriority.o  \
 getrlimit.o  \
 getrlimit64.o \
 getrusage.o  \
 getsid.o  \
 getsockname.o  \
 getsockopt.o  \
 gettimeofday.o  \
 getuid.o  \
 gtty.o   \
 ioctl.o   \
 ki_call.o  \
 kill.o   \
 __ksem_close.o \
 __ksem_destroy.o \
 __ksem_open.o \
 __ksem_unlink.o \
 lchmod.o  \
 lchown.o  \
 link.o   \
 __lio_listio_syscall.o \
 listen.o  \
 lockf.o   \
 lockf64.o  \
 lseek.o   \
 lseek64.o  \
 lstat.o   \
 lstat64.o  \
 lsync.o   \
 __lw_sem_decr.o \
 __lw_sem_incr.o \
 __lw_sem_read.o \
 madvise.o  \
 mcas.o   \
 mkdir.o   \
 mknod.o   \
 mkrnod.o  \
 mlock.o \
 mlockall.o \
 mmap.o   \
 mmap64.o  \
 mount.o   \
 mpctl.o   \
 mprotect.o  \
 mq_getattr.o \
 mq_notify.o \
 mq_open.o \
 mq_receive.o \
 mq_send.o \
 mq_setattr.o \
 mq_unlink.o \
 msem_remove.o  \
 msgctl.o  \
 msgget.o  \
 msgrcv.o  \
 msgsnd.o  \
 msync.o   \
 munlock.o \
 munlockall.o \
 munmap.o  \
 nanosleep.o  \
 nfssvc.o  \
 nice.o   \
 open.o   \
 pathconf.o  \
 pause.o   \
 pipe.o   \
 plock.o   \
 poll.o   \
 proc_close.o  \
 proc_open.o  \
 proc_recv.o  \
 proc_send.o  \
 proc_sendrecv.o \
 proc_syscall.o \
 profil.o  \
 pstat.o   \
 ptrace.o  \
 putmsg.o  \
 putpmsg.o  \
 quotactl.o  \
 read.o   \
 readlink.o  \
 readv.o   \
 reboot.o  \
 recv.o   \
 recvfrom.o  \
 recvmsg.o  \
 recvmsg2.o  \
 rename.o  \
 rmdir.o   \
 rtprio.o  \
 sched_get_priority_max.o \
 sched_get_priority_min.o \
 sched_getparam.o \
 sched_getscheduler.o \
 sched_rr_get_interval.o \
 sched_setparam.o \
 sched_setscheduler.o \
 sched_yield.o  \
 select.o  \
 semctl.o  \
 semget.o  \
 semop.o   \
 send.o   \
 sendmsg.o  \
 sendmsg2.o  \
 sendto.o  \
 serialize.o  \
 set_userthreadid.o \
 setaudid.o  \
 setaudproc.o  \
 setcore.o  \
 setdomainname.o \
 setevent.o  \
 setgid.o  \
 setgroups.o  \
 sethostid.o  \
 setitimer.o  \
 setpgrp2.o  \
 setpgrp3.o  \
 setpriority.o  \
 setregid.o  \
 setresgid.o  \
 setresuid.o  \
 setrlimit.o  \
 setrlimit64.o \
 setsid.o  \
 setsockopt.o  \
 settimeofday.o  \
 setuid.o  \
 shm_open.o \
 shm_unlink.o \
 shmat.o   \
 shmctl.o  \
 shmdt.o   \
 shmget.o  \
 shutdown.o  \
 sigaction.o  \
 sigaltstack.o  \
 sigblock.o  \
 sigpending.o  \
 sigprocmask.o  \
 sigqueue.o \
 sigsetmask.o  \
 sigstack.o  \
 sigsuspend.o  \
 sigtimedwait.o \
 sigwaitinfo.o \
 socket.o  \
 socket2.o  \
 socketpair.o  \
 socketpair2.o  \
 stat.o   \
 stat64.o  \
 statfs.o  \
 statvfs.o  \
 stime.o   \
 stty.o   \
 swapclients.o  \
 swapfs.o  \
 swapoff.o  \
 swapon.o  \
 symlink.o  \
 sync.o   \
 sysfs.o   \
 sysinfo.o  \
 time.o   \
 timer_create.o  \
 timer_delete.o  \
 timer_getoverrun.o \
 timer_gettime.o \
 timer_settime.o \
 times.o   \
 truncate.o  \
 truncate64.o \
 tsync.o   \
 umask.o   \
 umount.o  \
 unlink.o  \
 utime.o   \
 vfork.o   \
 vfsmount.o  \
 vhangup.o  \
 wait.o   \
 wait3.o   \
 waitid.o  \
 waitpid.o  \
 write.o   \
 writev.o


#
# Special entry point for the profiled version of libc.  This version
# of brk() isn't profiled so that mcrt0.o and gcrt0.o can allocate memory
# without skewing the statistics.  This entry is identified in the
# stubs.data file with the "syscall2" option.  
#

PROFILE_ONLY_OBJS= _brk_noprof.o


ASM_STUBS= $(STUBS:.o=.s)
ASM_STUBS_DAV= $(STUBS_DAV:.o=.s)
ASM_PROFILE_STUBS= $(PROFILE_ONLY_OBJS:.o=.s)

NEWSTUBS_DAV= $(STUBS_DAV:.o=_DAV.o)
OBJS= $(STUBS)
SHARED_ONLY_OBJS= $(NEWSTUBS_DAV)
ARCHIVE_ONLY_OBJS= $(STUBS_DAV)

CLUTTER= break.mh defines.mh stublist $(ASM_STUBS) $(ASM_PROFILE_STUBS) $(STUBS_DAV) $(ASM_STUBS_DAV) $(NEWSTUBS_DAV) $(COBJS)

# Default build flavor

FLAVOR= ../../archive_pa1

include $(FLAVOR)/make.flavor



STUBDEFS= $(LIBDEFS) $(FDEFS) $(LOCALDEFS) \
	   -Dhp9000s800 -D__hp9000s800 -Uhp9000s200 \
	   -U__hp9000s200 -Uhp9000s300 -U__hp9000s300 \
	   -D_KERNEL -DKERNEL

defines.mh: $(BLDENV)/usr/include/sys/syscall.h
	rm -f $@
	echo "define(\`SYS_syscall',\`0')" >> $@
	$(UNIFDEF) $(STUBDEFS) < $? | awk -f $(SUBDIR)/mkdefs.awk >> $@

break.mh: $(BLDENV)/usr/include/machine/break.h
	rm -f $@
	$(UNIFDEF) $(STUBDEFS) < $? | awk -f $(SUBDIR)/mkdefs_break.awk >> $@

stublist: $(SUBDIR)/stubs.data
	rm -f $@
	$(CPP) $(STUBDEFS) $? > $@

$(STUBS) $(STUBS_DAV) $(PROFILE_ONLY_OBJS): $$(@:.o=.s)
	rm -f $@
	cat $(PREFIX) $? \
	  | $(AS) $(ASFLAGS) > $@

# Rule for generating assembler source for stubs.
# Uses shell variable "$handle"
STUB_SRC_RULE=	\
	rm -f $@ ;\
	grep "^$$handle[ 	]" stublist \
	  | ksh -p $(SUBDIR)/mkmacro $(SUBDIR) \
	  | $(M4) $(STUBDEFS) $$extradefs \
	  | sed -e '/^$$/d' > $@

STUB_SRC_DEPS= stublist defines.mh break.mh
	  
$(ASM_STUBS) $(ASM_STUBS_DAV): $(STUB_SRC_DEPS)
	handle=$(@:.s=) ; \
	  $(STUB_SRC_RULE)

$(ASM_PROFILE_STUBS): $(STUB_SRC_DEPS)
	handle=$(@:.s=) ; extradefs="-DNON_PROFILE" ; \
	  $(STUB_SRC_RULE)

$(NEWSTUBS_DAV):  $$(@:_DAV.o=.o) dav_vers.o
	rm -f $@ ;\
	$(LD) -r $? -o $@
