Files
seta75D d6fe8fe829 Init
2021-10-11 22:19:34 -03:00

573 lines
21 KiB
Makefile

# @(#)87 1.51 src/bos/usr/ccs/lib/libc/Makefile, libc, bos41J, 9521B_all 5/25/95 10:02:32
#
# COMPONENT_NAME: LIBC
#
# FUNCTIONS: defined
#
# ORIGINS: 27
#
# IBM CONFIDENTIAL -- (IBM Confidential Restricted when
# combined with the aggregated modules for this product)
# SOURCE MATERIALS
#
# (C) COPYRIGHT International Business Machines Corp. 1988,1995
# All Rights Reserved
# US Government Users Restricted Rights - Use, duplication or
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
#
#
#
# This Makefile is used to build 4 libraries
# lib/libc.a normal libc
# lib/libc_r.a thread safe libc
# lib/libp/libc.a profiled normal libc
# lib/libp/libc_r.a profiled thread safe libc
# PROFILED is defined if building a profiled library
# THREAD_SAFE is defined if building an _r library
#
# common between all 4 libraries
#
LIBC_PATH = ${MAKETOP}/bos/usr/ccs/lib/libc
LIBC_R_PATH = ${MAKETOP}/bos/usr/ccs/lib/libc_r
LIBM_PATH = ${MAKETOP}/bos/usr/ccs/lib/libm
KERN_EXP_PATH = ${MAKETOP}/bos/kernel/exp
KERN_EXT_EXP_PATH = ${MAKETOP}/bos/kernext/exp
#
# OTHER_LIBRARIES is used to tell an update build that these are libraries
# Referenced in osf.aix.std.mk
#
#
# For thread safe libraries, add _r
#
.if defined(THREAD_SAFE)
LIBC = libc_r.a
CRT0 = crt0_r.o
GCRT0 = gcrt0_r.o
MCRT0 = mcrt0_r.o
THREADS_INIT = __threads_init.o
OTHER_LIBRARIES = libc_r.a
.else
LIBC = libc.a
CRT0 = crt0.o
GCRT0 = gcrt0.o
MCRT0 = mcrt0.o
THREADS_INIT =
OTHER_LIBRARIES = libc.a libc.a.min libcsys.a
.endif
.if !defined(PROFILED)
#
# Common between non-profiled libc.a and libc_r.a
#
EXPLIB_SUBDIRS = profiled
SUBDIRS = profiled
IDIR = /usr/ccs/lib/
LIBS = libs_nshr.a libdes_nshr.a
#
# thread_safe specific
#
.if defined (THREAD_SAFE)
INCFLAGS = -I${LIBC_PATH} -I${LIBC_PATH}/${TARGET_MACHINE}
VPATH = ${TARGET_MACHINE}:${LIBC_PATH}:${LIBC_PATH}/${TARGET_MACHINE}:${LIBM_PATH}:${LIBM_PATH}/${TARGET_MACHINE}:${KERN_EXP_PATH}:${KERN_EXT_EXP_PATH}
EXPLIB_TARGETS = export_libc_r.a
ILIST = libc_r.a ${ILIST_OTHERS}
BINARIES = libc_r.a
CFLAGS = -D_THREAD_SAFE
M4FLAGS = -D_THREAD_SAFE
#
# libc.a specific
#
.else
INCFLAGS = -I${LIBC_PATH}/${TARGET_MACHINE}
VPATH = ${TARGET_MACHINE}:${LIBM_PATH}:${LIBM_PATH}/${TARGET_MACHINE}:${KERN_EXP_PATH}:${KERN_EXT_EXP_PATH}
EXPLIB_TARGETS = export_libc.a export_libcsys.a export_libc.a.min
ILIST = libc.a libcsys.a libc.a.min bmalloc.o ${ILIST_OTHERS}
BINARIES = libc.a libcsys.a libc.a.min
.endif
#
# Profiled libraries
#
.else
#
# common between libc.a and libc_r.a
#
IDIR = /usr/ccs/lib/libp/
LIBS = libs_nshr.a libdes_nshr.a ${PROF_LIBS}
#
# thread_safe specific
#
.if defined(THREAD_SAFE)
INCFLAGS = -I${LIBC_R_PATH} -I${LIBC_R_PATH}/${TARGET_MACHINE} \
-I${LIBC_PATH} -I${LIBC_PATH}/${TARGET_MACHINE}
VPATH = ${LIBC_R_PATH}:${LIBC_R_PATH}/${TARGET_MACHINE}:${LIBC_PATH}:${LIBC_PATH}/${TARGET_MACHINE}:${LIBM_PATH}:${LIBM_PATH}/${TARGET_MACHINE}:${KERN_EXP_PATH}:${KERN_EXT_EXP_PATH}
EXPLIB_TARGETS = export_libc_r.a
ILIST = libc_r.a
BINARIES = libc_r.a
CFLAGS = -D_THREAD_SAFE -p
#
# libc.a specific
#
.else
INCFLAGS = -I${LIBC_PATH} -I${LIBC_PATH}/${TARGET_MACHINE}
VPATH = ${LIBC_PATH}:${LIBC_PATH}/${TARGET_MACHINE}:${LIBM_PATH}:${LIBM_PATH}/${TARGET_MACHINE}:${KERN_EXP_PATH}:${KERN_EXT_EXP_PATH}
EXPLIB_TARGETS = export_libc.a
ILIST = libc.a
BINARIES = libc.a
CFLAGS = -p
.endif
.endif
divide.o_CFLAGS := -U__MATH__ ${CFLAGS}
MSGHDRS = fshelp_msg.h libc_msg.h
CATFILES = fshelp.cat libc.cat
HFILES = ${MSGHDRS}
glink.o_IDIR = /usr/lib/
INCLUDES = libc_msg.h
libc_msg.h_EXPDIR = /usr/include/
#
# the following files are common for all 4 libraries shr.o
#
# ###### ####### # ###### # # #######
# # # # # # # # ## ## #
# # # # # # # # # # # # #
# ###### ##### # # # # # # # #####
# # # # ####### # # # # #
# # # # # # # # # # #
# # # ####### # # ###### # # #######
#
# WARNING: When you need to add files to this list, please
# add them at the end of the list. The object files
# are ordered this way to reduce the working set
# on a running system.
#
SHARED_OFILES = \
__getmaxdispwidth.o __getmbcurmax.o errno.o \
cuexit.o data.o strlen.o fopen.o malloc.o malloc_y.o \
whatbucket.o flsbuf.o printf.o printf64.o printf128.o \
doprnt.o doprnt64.o doprnt128.o NLinit.o \
filbuf.o strncmp.o atoi.o getenv.o strrchr.o isupper.o \
fputc.o tolower.o _tolower.o fgets.o errlst.o strchr.o isdigit.o \
doscan.o doscan128.o scanf.o scanf64.o scanf128.o bzero.o \
signal.o perror.o isspace.o fwrite.o getuid.o abort.o \
getpid.o sleep.o fread.o islower.o toupper.o _toupper.o \
gethostent.o memset.o atol.o getpwent.o stat.o ungetc.o \
fputs.o fseek.o isascii.o strtok.o setjmper.o ctime.o \
gettimeofday.o system.o isalpha.o strspn.o \
isprint.o ftell.o strpbrk.o isalnum.o setlocale.o strcspn.o \
xdr.o clnt_udp.o gets.o fcntl.o rpc_commondata.o qsort.o \
atof.o getcwd.o fork.o strstr.o abs.o memcmp.o dup.o getwd.o \
rew.o cuserid.o strtod.o bcmp.o ioctl.o getlogin.o \
isxdigit.o mktemp.o index.o getservent.o fgetc.o \
rindex.o popen.o inet_addr.o opendir.o rand.o closedir.o \
readdir.o fdopen.o execl.o alarm.o catgets.o wait.o \
catopen.o geteuid.o sigblock.o assert.o getdtblsz.o getopt.o \
execvp.o isatty.o iscntrl.o tempnam.o setitimer.o \
sigops.o inet_ntoa.o getgid.o ispunct.o setbuf.o execlp.o \
execv.o ttyname.o bsearch.o putenv.o puts.o random.o \
tmpnam.o sigvec.o write.o setvbuf.o getitimer.o getgrent.o \
strdup.o utime.o isgraph.o killpg.o ffs.o rexec.o \
strerror.o tmpfile.o utimer.o strftime.o getegid.o lfind.o \
toascii.o iswctype.o wctype.o basename.o dirname.o endvfsent.o \
fshelp.o getbyflag.o getbyname.o getbytype.o getut.o getvfsent.o \
parsevfs.o setvfsent.o __csid_std.o __wcsid_std.o csid.o wcsid.o \
iswalpha.o iswcntrl.o iswdigit.o iswgraph.o iswlower.o iswprint.o \
iswpunct.o iswspace.o iswupper.o iswxdigit.o towlower.o \
get_wctype.o __get_wctype_std.o is_wctype.o __is_wctype_sb.o \
__is_wctype_std.o iswalnum.o __towlower_std.o towupper.o \
__towupper_std.o __mbstopcs.o __mbstopcs_932.o __mbstopcs_eucjp.o \
__mbstopcs_sb.o __mbtopc.o __mbtopc_932.o __mbtopc_eucjp.o \
__mbtopc_sb.o __pcstombs.o __pcstombs_sb.o __pcstombs_932.o \
__pcstombs_eucjp.o __pctomb.o __pctomb_sb.o __pctomb_932.o \
__pctomb_eucjp.o mblen.o __mblen_932.o __mblen_eucjp.o \
__mblen_sb.o mbstowcs.o __mbstowcs_932.o __mbstowcs_eucjp.o \
__mbstowcs_sb.o mbtowc.o __mbtowc_932.o __mbtowc_eucjp.o \
__mbtowc_sb.o wcstombs.o __wcstombs_932.o __wcstombs_eucjp.o \
__wcstombs_sb.o wcswidth.o __wcswidth_932.o __wcswidth_eucjp.o \
__wcswidth_latin.o wctomb.o __wctomb_932.o __wctomb_eucjp.o \
__wctomb_sb.o wcwidth.o __wcwidth_932.o __wcwidth_eucjp.o \
__wcwidth_latin.o strtof.o _itrunc.o _uitrunc.o \
copysign.o floor.o a64l.o atoff.o atoi_table.o ecvt.o \
fp_const.o gcvt.o labs.o l64a.o rint.o \
cfgetispeed.o cfgetospeed.o cfsetispeed.o \
cfsetospeed.o gtty.o setcsmap.o stty.o tcdrain.o \
tcflow.o tcflush.o tcgetattr.o tcgetpgrp.o tcsendbreak.o \
tcsetattr.o tcsetpgrp.o termdef.o ttylock.o \
creadir.o ftw.o mkstemp.o pathconf.o sysconf.o \
__strftime_std.o strptime.o __strptime_std.o wcsftime.o \
__wcsftime_std.o __strfmon_std.o strfmon.o \
mount.o read.o confstr.o crt0msg.o divide.o drand48.o \
ftok.o l3.o mon.o move.o ptrgl.o isinet_addr.o inet_lnaof.o \
inet_mkadr.o inet_netof.o inet_netwk.o inet_ntoa.o \
ns_addr.o ns_ntoa.o iso_addr.o linkaddr.o DStemp.o \
clrerr.o ctermid.o feof.o ferror.o fgetpos.o \
fgetwc.o fgetws.o fileno.o findiop.o fputwc.o fputws.o \
fsetpos.o getc.o getchar.o getdirent.o getw.o \
getwc.o getws.o getwchar.o putc.o \
putchar.o putw.o putwc.o putwchar.o putws.o \
remove.o rewinddir.o scandir.o seekdir.o setbuffer.o \
tell.o telldir.o ttyslot.o ungetwc.o \
__lc_load.o NLSsetup.o __localeconv_std.o \
localeconv.o __nl_langinfo_std.o nl_langinfo.o \
calloc.o memccpy.o memchr.o moveeq.o \
swab.o fill.o msem_init.o msem_lock.o \
msem_unlock.o catgetmsg.o ndbm.o \
ether_addr.o getnetent.o getrpcent.o \
gprotoent.o herror.o innetgr.o rcmd.o \
res_comp.o res_debug.o res_init.o res_mkqry.o res_query.o \
res_send.o ruserpass.o bresvport.o gnetgrent.o \
strcasecmp.o fnmatch.o __fnmatch_C.o __fnmatch_sb.o \
__fnmatch_std.o glob.o regcomp.o __regcomp_std.o \
regerror.o __regerror_std.o regexec.o __regexec_std.o \
regfree.o __regfree_std.o regex.o rpmatch.o __rpmatch_C.o \
__rpmatch_std.o wordexp.o \
clock.o insque.o load.o mkfifo.o nice.o nlist.o syslog.o \
isastream.o quota_init.o auth_des.o auth_none.o \
auth_unix.o authdes_prot.o authunix_prot.o clnt_generic.o \
clnt_perror.o clnt_raw.o clnt_simple.o clnt_tcp.o \
rpc_dtablesize.o get_myaddress.o key_call.o \
key_prot.o netname.o oncmsg.o openchild.o rtime.o \
pmap_clnt.o pmap_getmaps.o pmap_getport.o pmap_prot.o \
pmap_prot2.o pmap_rmt.o rpc_prot.o \
rpc_callmsg.o svc.o svcauth_des.o svc_auth.o \
svc_auth_unix.o svc_raw.o svc_run.o svc_simple.o svc_tcp.o \
svc_udp.o xdr_array.o xdr_float.o xdr_mem.o \
xdr_rec.o xdr_reference.o xdr_stdio.o yp_all.o yp_bind.o yp_enum.o \
yperr_str.o yp_master.o yp_match.o yp_order.o ypprot_err.o \
ypv1_xdr.o yp_update.o ypup_prot.o ypxdr.o maint_xdr.o \
getpw.o getuinfo.o initgroups.o putgrent.o \
putpwent.o setegid.o setregid.o setrgid.o setruid.o \
crypt.o kleenup.o getpass.o _signal.o psignal.o raise.o siginter.o \
siglist.o sigpause.o ssignal.o hsearch.o lsearch.o \
tsearch.o character.o \
colval.o replacement.o \
strcat.o strcmp.o strcoll.o __strcoll_C.o \
__strcoll_sb.o __strcoll_std.o strxfrm.o __strxfrm_C.o \
__strxfrm_sb.o __strxfrm_std.o strcpy.o strncat.o strncpy.o \
__wcscoll_C.o __wcscoll_std.o wcsxfrm.o __wcsxfrm_C.o \
__wcsxfrm_std.o wcscmp.o wcsncmp.o wcscat.o wcschr.o \
wcscspn.o wcslen.o wcsncat.o wcscpy.o wcsncpy.o wcspbrk.o \
wcsrchr.o wcsspn.o wcstok.o wcswcs.o wcscoll.o exec_args.o \
execle.o exect.o getpgsize.o stime.o time.o \
vlimit.o difftime.o nanotimers.o settimeofday.o \
AFfndrec.o AFgetatr.o AFgetrec.o AFnxtrec.o AFopen.o \
AFread.o AFrewind.o AFclose.o \
NCchrlen.o NCcollate.o NCcoluniq.o NCcolval.o \
NCdec.o NCdechr.o NCdecode.o NCdecstr.o NCenc.o NCencode.o \
NCencstr.o NCeqvmap.o NCesc.o NCflatchr.o NCgetbuf.o \
NCisNLchar.o NCisalnum.o NCisalpha.o NCiscntrl.o NCisdigit.o \
NCisgraph.o NCislower.o NCisprint.o NCispunct.o NCisshift.o \
NCisspace.o NCisupper.o NCisxdigit.o NCstrcat.o NCstrchr.o \
NCstrcmp.o NCstrcpy.o NCstrcspn.o NCstrdup.o NCstrlen.o \
NCstrncat.o NCstrncmp.o NCstrncpy.o NCstrpbrk.o NCstrrchr.o \
NCstrspn.o NCstrtok.o NCtoNLchar.o NCtolower.o NCtoupper.o \
NCunesc.o NCwunesc.o NLchrlen.o NLcplen.o NLcsv.o NLescstr.o \
NLesctab.o NLfgetfile.o NLflatstr.o NLflattab.o NLscanf.o \
NLisNLcp.o NLstrcat.o NLstrchr.o NLstrcmp.o NLstrcpy.o \
NLstrcspn.o NLstrdlen.o NLstrlen.o NLstrncat.o NLstrncmp.o \
NLstrncpy.o NLstrpbrk.o NLstrrchr.o NLstrspn.o NLstrtime.o \
NLstrtok.o NLtmtime.o NLunescstr.o NLunesctab.o NLxcol.o \
NLsprintf.o NLvfprintf.o NLvprintf.o NLvsprintf.o NLgetenv.o \
NLctime.o NLfprintf.o NLprintf.o NLcatopen.o NLgetamsg.o \
NLxio.o NLyesno.o NLcatgets.o _NCtolower.o _NCtoupper.o atojis.o \
cjistosj.o cjistouj.o csjtojis.o csjtouj.o cujtojis.o \
cujtosj.o isj1kana.o isjalnum.o isjalpha.o isjdigit.o \
isjgraph.o isjhira.o isjis.o isjkanji.o isjkata.o \
isjlower.o isjparen.o isjprint.o isjpunct.o isjspace.o \
isjupper.o isjxdigit.o jctype_.o jistab.o jistoa.o \
jistosj.o jistouj.o kutentojis.o mbs.o mbsadvance.o \
mbsinvalid.o mbstomb.o mbswidth.o mbscat.o mbscmp.o \
mbscpy.o mbsncmp.o mbspbrk.o sjtojis.o sjtouj.o strncollen.o \
strtows.o tojhira.o tojkata.o tojlower.o tojupper.o \
toujis.o ujtojis.o ujtosj.o wstrcat.o wstrchr.o \
wstrcmp.o wstrcpy.o wstrcspn.o wstrdup.o wstrlen.o \
wstrncat.o wstrncpy.o wstrpbrk.o wstrrchr.o wstrspn.o \
wstrtok.o wstrtos.o finite.o logb.o scalb.o \
llseek.o getproc.o getuser.o \
fmtmsg.o getdate.o getsubopt.o realpath.o \
${${TARGET_MACHINE}_SHARED_OFILES}
#
# If you haven't read the WARNING above, please do so before
# adding files to the SHARED_OFILES list.
#
#
# files specific to thread safe libc
#
LIBC_R_SHARED_OFILES = \
flockfile.o \
libc_data.o \
libc_locks.o \
getpwnamuid.o \
rec_mutex.o
#
# files that are only in libc.a
#
LIBC_SHARED_OFILES =
# finite.o logb.o scalb.o are included in shr.o (but not exported)
# because they are required to frexpl.o etc. The user sees the non-shared
# version below.
#
# all non shared files are common
#
NOSHARED_OFILES= \
frexp.o itrunc.o ldexp.o modf.o logb.o scalb.o finite.o \
uitrunc.o _itrunc.o _uitrunc.o fstab.o move.o ptrgl.o \
getttyent.o getttynam.o moveeq.o fill.o strcat.o strcpy.o \
strcmp.o strncat.o strncpy.o \
${${TARGET_MACHINE}_NOSHARED_OFILES}
METHOD_OFILES= \
__method.o
.if !defined(PROFILED)
#
# This is only used when the non-profiled version of libc is built.
SYS_OFILES= \
a64l.o atoi_sys.o atoi_table.o l64a.o move.o ptrgl.o bcmp.o \
bzero.o memccpy.o memchr.o memcmp.o memset.o moveeq.o \
clc.o _uitrunc.o _itrunc.o \
fill.o NCisshift_tmp.o strcat.o strchr.o strcmp.o \
strcpy.o strcspn.o strlen.o strncat.o strncmp.o \
strncpy.o strpbrk.o strrchr.o strspn.o strstr.o strtok.o \
${${TARGET_MACHINE}_SYS_OFILES}
ILIST_OTHERS = ${CRT0} ${GCRT0} ${MCRT0} glink.o ${THREADS_INIT}
OTHERS = ${ILIST_OTHERS} bmalloc.o
.endif
ether_addr.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
getgrent.o_CFLAGS := -DYP ${CFLAGS}
getpwent.o_CFLAGS := -DYP ${CFLAGS}
gethostent.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
getnetent.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
getrpcent.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
getservent.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
gprotoent.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
herror.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
innetgr.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
rcmd.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
res_comp.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
res_debug.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
res_init.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
res_mkqry.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
res_query.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
res_send.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
rexec.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
ruserpass.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
bresvport.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
gnetgrent.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
strcasecmp.o_CFLAGS := -D_BSD=44 -D_SUN ${CFLAGS}
key_call.o_CFLAGS := -D_BSD ${CFLAGS}
maint_xdr.o_CFLAGS := -D_BSD ${CFLAGS}
yp_all.o_CFLAGS := -D_BSD ${CFLAGS}
yp_bind.o_CFLAGS := -D_BSD ${CFLAGS}
yp_enum.o_CFLAGS := -D_BSD ${CFLAGS}
yperr_str.o_CFLAGS := -D_BSD ${CFLAGS}
yp_master.o_CFLAGS := -D_BSD ${CFLAGS}
yp_match.o_CFLAGS := -D_BSD ${CFLAGS}
yp_order.o_CFLAGS := -D_BSD ${CFLAGS}
ypprot_err.o_CFLAGS := -D_BSD ${CFLAGS}
ypv1_xdr.o_CFLAGS := -D_BSD ${CFLAGS}
yp_update.o_CFLAGS := -D_BSD ${CFLAGS}
ypup_prot.o_CFLAGS := -D_BSD ${CFLAGS}
ypxdr.o_CFLAGS := -D_BSD ${CFLAGS}
doprnt.o_CFLAGS := -qdebug=austlib ${CFLAGS}
doscan.o_CFLAGS := -qdebug=austlib ${CFLAGS}
doprnt128.o_CFLAGS := -qdebug=austlib -qldbl128 -D__LONGDOUBLE128 ${CFLAGS}
doscan128.o_CFLAGS := -qdebug=austlib -qldbl128 -D__LONGDOUBLE128 ${CFLAGS}
# the following .o's are actually found in POWER/machdep.mk
# but if the following defines are found there profiling doesn't
# work right.
f128toi64rz.o_CFLAGS := -qdebug=austlib -qldbl128 ${CFLAGS}
f128tou64rz.o_CFLAGS := -qdebug=austlib -qldbl128 ${CFLAGS}
f64toi64rz.o_CFLAGS := -qdebug=austlib ${CFLAGS}
f64tou64rz.o_CFLAGS := -qdebug=austlib ${CFLAGS}
strtoll.o_CFLAGS := -qdebug=austlib ${CFLAGS}
strtoull.o_CFLAGS := -qdebug=austlib ${CFLAGS}
wcstoll.o_CFLAGS := -qdebug=austlib ${CFLAGS}
wcstoull.o_CFLAGS := -qdebug=austlib ${CFLAGS}
lldiv.o_CFLAGS := -qdebug=austlib ${CFLAGS}
llabs.o_CFLAGS := -qdebug=austlib ${CFLAGS}
strtold.o_CFLAGS := -qldbl128 -D__LONGDOUBLE128 ${CFLAGS}
_quitrunc.o_CFLAGS := -qldbl128 -D__LONGDOUBLE128 ${CFLAGS}
frexpl.o_CFLAGS := -qldbl128 -D__LONGDOUBLE128 ${CFLAGS}
ldexpl.o_CFLAGS := -qldbl128 -D__LONGDOUBLE128 ${CFLAGS}
modfl.o_CFLAGS := -qldbl128 -D__LONGDOUBLE128 ${CFLAGS}
.if defined(THREAD_SAFE)
shr_IMPORTS = libpthreads.imp syscalls.exp libc_r.meth.exp libc_t.imp libdes_r.imp
shr_EXPORTS = libpthreads.imp syscalls.exp libc_r.exp
meth_IMPORTS = libc_r.exp libc_t.imp
meth_EXPORTS = libc_r.meth.exp
aio_IMPORTS = aio.exp syscalls.exp libc_r.exp libc_t.imp
.else
shr_IMPORTS = syscalls.exp libc.meth.exp libdes.imp
shr_EXPORTS = libc.exp syscalls.exp
meth_IMPORTS = libc.exp
meth_EXPORTS = libc.meth.exp
aio_IMPORTS = aio.exp syscalls.exp libc.exp.min libc.exp.full
.endif
aio_EXPORTS = libcaio.exp
aio_OFILES = aio_posix.o
aio_posix.o_INCFLAGS = -I${MAKETOP}/bos/kernext/aio
.include <${LIBC_PATH}/${TARGET_MACHINE}/machdep.mk>
.include <${RULES_MK}>
__LIBS__ = ${LIBS:!${FINDFILE} ${LIBDIRS} ${LIBS}!}
__LIB_S__ = ${LIBS:S/^lib/-l/g:S/.a$//g}
.if defined(THREAD_SAFE)
ALL_SHARED_OFILES = ${SHARED_OFILES} ${LIBC_R_SHARED_OFILES}
.else
ALL_SHARED_OFILES = ${SHARED_OFILES} ${LIBC_SHARED_OFILES}
.endif
${ALL_SHARED_OFILES}: ${HFILES}
${LIBC} : $${.TARGET}(${NOSHARED_OFILES} aio.o shr.o meth.o)
${AR} ${DEF_ARFLAGS} ${.TARGET} ${.OODATE}
#
# only build libc.a min in the non profiled - non thread safe pass
#
.if !defined(PROFILED)
.if !defined(THREAD_SAFE)
libc.a.min : meth.o libc.exp.min ${__LIBS__} ${shr_IMPORTS} ${ALL_SHARED_OFILES}
@${RM} -f ${.TARGET} min/shr.o min/meth.o min/shr.o.out
@[ -d min ] || ${MKDIR} min
${CP} ${meth.o:P} min
${STRIP} min/meth.o
${LD} -s -bM:Sre -o min/shr.o ${ALL_SHARED_OFILES} \
${shr_IMPORTS:@TMP@-bI:${${TMP}:P}@} \
${__LIB_S__} ${LIBDIRS} -blibpath:/usr/lib:/lib \
-bE:${libc.exp.min:P} \
-bE:${libc.meth.exp:P} \
-bE:${syscalls.exp:P} \
-bloadmap:min/shr.o.out -bR:min/shr.o.map \
${LIBC_LDENV} ${LIBC_LDARGS} \
&& ${RM} -f min/shr.o.map
${AR} ${DEF_ARFLAGS} ${.TARGET} min/shr.o min/meth.o || ( ${RM} -f ${.TARGET}; false; )
.endif
.endif
LIBC_LDFLAGS = -bnoentry -bloadmap:${.PREFIX}.out -bR:${.PREFIX}.map
_LIBC_LDFLAGS_ = ${LIBC_LDFLAGS} ${LIBC_LDENV} ${LIBC_LDARGS}
shr.o: ${ALL_SHARED_OFILES} ${shr_IMPORTS} ${shr_EXPORTS} ${__LIBS__}
${RM} -f shr.out shr.map
${LD} -bM:Sre -o ${.TARGET} \
${ALL_SHARED_OFILES} \
${shr_IMPORTS:@TMP@-bI:${${TMP}:P}@} \
${__LIB_S__} ${LIBDIRS} \
${shr_EXPORTS:@TMP@-bE:${${TMP}:P}@} \
-blibpath:/usr/lib:/lib -bnoobjreorder ${_LIBC_LDFLAGS_}
meth.o: ${METHOD_OFILES} ${meth_IMPORTS} ${meth_EXPORTS} ${__LIBS__}
${RM} -f meth.out meth.map
${LD} -bM:Sre -o ${.TARGET} ${METHOD_OFILES} \
${meth_IMPORTS:@TMP@-bI:${${TMP}:P}@} \
${__LIB_S__} ${LIBDIRS} \
${meth_EXPORTS:@TMP@-bE:${${TMP}:P}@} \
-blibpath:/usr/lib:/lib ${_LIBC_LDFLAGS_}
aio.o: ${aio_OFILES} ${aio_IMPORTS} ${aio_EXPORTS}
${RM} -f aio.out aio.map
${LD} -bM:Sre -o ${.TARGET} ${aio_OFILES} \
${aio_IMPORTS:@TMP@-bI:${${TMP}:P}@} \
${__LIB_S__} ${LIBDIRS} \
${aio_EXPORTS:@TMP@-bE:${${TMP}:P}@} \
-blibpath:/usr/lib:/lib ${_LIBC_LDFLAGS_}
fshelp.o: fshelp_msg.h
#
# if building thread safe, create libc_t.exp,libc_r.meth.exp, libc_r.exp
#
.if defined(THREAD_SAFE)
libc_t.imp: libc_r.exp.only libc_t.imp.non_r
$(ECHO) '#!libc_t.a(shr.o)' > ${.TARGET}
$(SED) -n "/_r[ \t]*$$/s///p" ${libc_r.exp.only:P} \
| $(CAT) - ${libc_t.imp.non_r:P} >> ${.TARGET}
libc_r.meth.exp: libc.meth.exp
$(SED) 's/#!libc.a(meth.o)/#!libc_r.a(meth.o)/' ${libc.meth.exp:P} > ${.TARGET}
libc_r.exp: libc.exp libc_r.exp.only
$(ECHO) '#!libc_r.a(shr.o)' | $(CAT) - ${libc.exp:P} \
| $(SED) '/#!libc.a(shr.o)/d' \
| $(CAT) - ${libc_r.exp.only:P} > ${.TARGET}
#
# otherwise, build libc.exp
#
.else
libc.exp: libc.exp.min libc.exp.full
${CAT} ${libc.exp.full:P} ${libc.exp.min:P} > ${.TARGET}
.endif
#
# The rest of the file does not need to be done in the profiling case
#
.if !defined(PROFILED)
#
# don't need libcsys.a in the thread safe case
#
.if !defined(THREAD_SAFE)
libcsys.a: $${.TARGET}(${SYS_OFILES})
${AR} ${DEF_ARFLAGS} ${.TARGET} ${SYS_OFILES}
.endif
CRT0LDFLAGS = -r -bloadmap:${.PREFIX}.out -bR:${.PREFIX}.map
_CRT0LDFLAGS_ = ${CRT0LDFLAGS} ${CRT0LDENV} ${CRT0LDARGS}
${CRT0}: crt0main.o crt0msg.o ${THREADS_INIT}
${RM} -f ${.TARGET:.o=.out} ${.TARGET:.o=.map}
${LD} ${_CRT0LDFLAGS_} -o ${.TARGET} ${.ALLSRC}
${GCRT0}: pgcrt0.o __mcount.o __mcount_construct.o _stk.o crt0msg.o _getcall.o _getcall2.o ${THREADS_INIT}
${RM} -f ${.TARGET:.o=.out} ${.TARGET:.o=.map}
${LD} ${_CRT0LDFLAGS_} -o ${.TARGET} ${.ALLSRC}
${MCRT0}: pcrt0.o __mcount.o __mcount_construct.o _stk.o crt0msg.o _getcall.o _getcall2.o ${THREADS_INIT}
${RM} -f ${.TARGET:.o=.out} ${.TARGET:.o=.map}
${LD} ${_CRT0LDFLAGS_} -o ${.TARGET} ${.ALLSRC}
bmalloc.o: spec_malloc.o whatbucket.o
${LD} -r spec_malloc.o whatbucket.o -o bmalloc.o
.endif #!PROFILED