1 # @(#)Makefile.inc 8.6 (Berkeley) 5/4/95
2 # $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.80 2001/08/17 22:09:15 dd Exp $
4 # machine-dependent gen sources
5 .sinclude "${.CURDIR}/${MACHINE_ARCH}/gen/Makefile.inc"
7 # machine-independent gen sources
11 CFLAGS += -I${.CURDIR}/gen
13 GENMIGDEFS += asl_ipc.defs
14 GENMIGHDRS += ${GENMIGDEFS:.defs=.h}
15 GENMIGSRCS += ${GENMIGDEFS:.defs=User.c}
17 MISRCS += ${GENMIGSRCS} NSSystemDirectories.c \
18 asl.c asl_core.c asl_file.c asl_legacy1.c asl_store.c asl_util.c \
20 cache.c confstr.c crypt.c devname.c disklabel.c errlst.c \
22 get_compat.c getloadavg.c getttyent.c getusershell.c getvfsbyname.c \
24 malloc.c nanosleep.c nftw.c magazine_malloc.c setlogin.c \
25 sigsetops.c _simple.c stack_logging.c stack_logging_disk.c strtofflags.c syslog.c \
26 thread_stack_pcs.c uname.c utmpx-darwin.c wordexp.c
28 .ifdef FEATURE_LEGACY_NXZONE_APIS
35 # DTrace USDT probes placed in magazine_malloc.c and malloc.c
36 ${SYMROOTINC}/magmallocProvider.h: ${.CURDIR}/gen/magmallocProvider.d
37 ${DTRACE} -o ${.TARGET} -C -h -s ${.ALLSRC}
38 magazine_malloc.${OBJSUFFIX}: ${SYMROOTINC}/magmallocProvider.h
39 malloc.${OBJSUFFIX}: ${SYMROOTINC}/magmallocProvider.h
41 # Force these files to build after the mig stuff
42 asl.${OBJSUFFIX}: asl_ipcUser.c
43 syslog.${OBJSUFFIX}: asl_ipcUser.c
44 utmpx-darwin.${OBJSUFFIX}: asl_ipcUser.c
46 CLEANFILES += ${GENMIGHDRS} ${GENMIGSRCS} ${GENMIGDEFS:.defs=Server.c}
48 LOCALHDRS += ${.CURDIR}/gen/asl_core.h ${.CURDIR}/gen/asl_file.h ${.CURDIR}/gen/asl_legacy1.h \
49 ${.CURDIR}/gen/asl_private.h ${.CURDIR}/gen/asl_store.h \
50 ${.CURDIR}/gen/_simple.h ${.CURDIR}/gen/stack_logging.h
52 CFLAGS-asl_file.c += -D_DARWIN_UNLIMITED_STREAMS
53 CFLAGS-asl_legacy1.c += -D_DARWIN_UNLIMITED_STREAMS
54 CFLAGS-asl_store.c += -D_DARWIN_UNLIMITED_STREAMS
55 CFLAGS-confstr.c += -I${.CURDIR}/darwin
56 CFLAGS-fmtmsg-fbsd.c += -D_DARWIN_UNLIMITED_STREAMS
57 CFLAGS-getcap-fbsd.c += -D_DARWIN_UNLIMITED_STREAMS
58 CFLAGS-getttyent.c += -D_DARWIN_UNLIMITED_STREAMS
59 CFLAGS-getusershell.c += -D_DARWIN_UNLIMITED_STREAMS
60 CFLAGS-glob-fbsd.c += -UDEBUG
62 # 4840357: workaround for compiler failure building libc_debug.a
63 .if make(lib${LIB}_debug.a)
64 CFLAGS-magazine_malloc.c += -funit-at-a-time
67 # Malloc uses count leading zeroes, not available in thumb
68 #.if (${MACHINE_ARCH} == arm)
69 #CFLAGS-scalable_malloc.c += -mno-thumb
72 CFLAGS-stack_logging_disk.c += -D_DARWIN_UNLIMITED_STREAMS
73 CFLAGS-utmpx-nbsd.c += -D_DARWIN_UNLIMITED_STREAMS
74 CFLAGS-wordexp.c += -D_DARWIN_UNLIMITED_STREAMS
76 # also build 64-bit long double versions (ppc only)
77 LDBLSRCS += asl.c err.c syslog.c
79 .include "Makefile.fbsd_begin"
80 FBSDMISRCS = _rand48.c alarm.c arc4random.c assert.c \
81 basename.c clock.c closedir.c ctermid.c \
82 daemon.c dirname.c drand48.c erand48.c err.c errno_.c exec.c \
83 fmtcheck.c fmtmsg.c fnmatch.c ftok.c \
84 getbsize.c getcap.c getcwd.c gethostname.c getpeereid.c \
85 getlogin.c getmntinfo.c getpagesize.c getprogname.c glob.c isatty.c \
86 jrand48.c lcong48.c lockf.c lrand48.c mrand48.c nice.c nrand48.c \
87 opendir.c pause.c popen.c pselect.c psignal.c raise.c readdir.c \
88 readpassphrase.c rewinddir.c scandir.c seed48.c seekdir.c \
89 sethostname.c setmode.c setprogname.c siginterrupt.c siglist.c \
90 signal.c sleep.c srand48.c stringlist.c sysconf.c sysctl.c \
91 sysctlbyname.c sysctlnametomib.c \
92 telldir.c termios.c time.c times.c \
93 ttyname.c ttyslot.c ualarm.c ulimit.c unvis.c usleep.c utime.c vis.c \
94 wait.c wait3.c waitpid.c
96 .ifdef FEATURE_LEGACY_64_APIS
97 # special case: getmntinfo64-fbsd.c is derived from getmntinfo.c with getmntinfo64.c.patch
99 .for _cwd in ${CWD} # This .for statement forces evaluation of ${CWD}
100 AUTOPATCHSRCS+= ${_cwd}/getmntinfo64-fbsd.c
101 ${_cwd}/getmntinfo64-fbsd.c: ${_cwd}/FreeBSD/getmntinfo.c
102 ${CP} ${.ALLSRC} ${.TARGET}
103 ${PATCH} ${.TARGET} ${.ALLSRC:S/getmntinfo/getmntinfo64/}.patch
106 MISRCS+= getmntinfo64.c
108 .endif # FEATURE_LEGACY_64_APIS
110 # special case: scandir_b-fbsd.c is derived from scandir.c with scandir_b.c.patch
112 .for _cwd in ${CWD} # This .for statement forces evaluation of ${CWD}
113 AUTOPATCHSRCS+= ${_cwd}/scandir_b-fbsd.c
114 ${_cwd}/scandir_b-fbsd.c: ${_cwd}/FreeBSD/scandir.c
115 ${CP} ${.ALLSRC} ${.TARGET}
116 ${PATCH} ${.TARGET} ${.ALLSRC:S/scandir/scandir_b/}.patch
119 .ifdef FEATURE_BLOCKS
121 .endif # FEATURE_BLOCKS
124 PRE1050SRCS+= daemon.c
126 PRE1050SRCS+= pselect.c
128 .ifndef FEATURE_ONLY_UNIX_CONFORMANCE
129 # only patch timezone.c; don't build in base variant, but in other variants
130 FBSDPATCHSRCS += timezone.c
133 FBSDHDRS = rand48.h telldir.h
134 .include "Makefile.fbsd_end"
136 .include "Makefile.nbsd_begin"
138 .include "Makefile.nbsd_end"
140 # private header files
141 INSTHDRS += ${.CURDIR}/gen/get_compat.h \
142 ${.CURDIR}/gen/execinfo.h
143 PRIV_INSTHDRS += ${.CURDIR}/gen/stack_logging.h
145 LEGACYSRCS += clock.c closedir.c confstr.c crypt.c fnmatch.c \
146 lockf.c nanosleep.c nftw.c nice.c opendir.c \
147 pause.c popen.c pselect.c rewinddir.c \
148 seekdir.c setmode.c sleep.c \
149 telldir.c termios.c timezone.c ttyname.c \
150 usleep.c wait.c waitpid.c
151 INODE32SRCS += fts.c getmntinfo.c glob.c nftw.c opendir.c \
152 readdir.c rewinddir.c scandir.c seekdir.c telldir.c
153 .ifdef FEATURE_BLOCKS
154 INODE32SRCS += scandir_b.c
155 .endif # FEATURE_BLOCKS
156 CANCELABLESRCS += lockf.c nanosleep.c pause.c pselect.c sleep.c termios.c \
157 usleep.c wait.c waitpid.c
158 CANCELABLE-DARWINEXTSNSRCS += pselect.c
159 DARWINEXTSNSRCS += popen.c pselect.c
160 DYLDSRCS += _simple.c
162 # include __dirent.h to rename DIR structure elements
163 .for _src in closedir-fbsd.c opendir-fbsd.c readdir-fbsd.c rewinddir-fbsd.c \
164 scandir-fbsd.c seekdir-fbsd.c telldir-fbsd.c
165 CFLAGS-${_src} += -I${.CURDIR}/gen -include __dirent.h
167 .ifdef FEATURE_BLOCKS
168 CFLAGS-scandir_b-fbsd.c += -I${.CURDIR}/gen -include __dirent.h
169 .endif # FEATURE_BLOCKS
171 # 4105292/4329702 different optimizations improves performance of
172 # drand48 and erand48
173 .if !make(lib${LIB}_debug.a)
174 .if (${MACHINE_ARCH} == i386)
175 OPTIMIZE-drand48-fbsd.c += -O1
176 OPTIMIZE-erand48-fbsd.c += -O1
180 # set the LIBC_ALIAS_* macros so we can decorate the symbol independent
181 # of other macro settings
182 CFLAGS-clock-fbsd.c += -DLIBC_ALIAS_CLOCK
183 CFLAGS-closedir-fbsd.c += -DLIBC_ALIAS_CLOSEDIR
184 CFLAGS-confstr.c += -DLIBC_ALIAS_CONFSTR
185 CFLAGS-crypt.c += -DLIBC_ALIAS_ENCRYPT -DLIBC_ALIAS_SETKEY
186 CFLAGS-fnmatch-fbsd.c += -DLIBC_ALIAS_FNMATCH
187 CFLAGS-fts.c += -DLIBC_ALIAS_FTS_CHILDREN -DLIBC_ALIAS_FTS_CLOSE -DLIBC_ALIAS_FTS_OPEN -DLIBC_ALIAS_FTS_OPEN_B -DLIBC_ALIAS_FTS_READ -DLIBC_ALIAS_FTS_SET
188 CFLAGS-glob-fbsd.c += -DLIBC_ALIAS_GLOB
189 CFLAGS-glob_b-fbsd.c += -DLIBC_ALIAS_GLOB_B
190 CFLAGS-lockf-fbsd.c += -DLIBC_ALIAS_LOCKF
191 CFLAGS-nanosleep.c += -DLIBC_ALIAS_NANOSLEEP
192 CFLAGS-nftw.c += -DLIBC_ALIAS_FTW -DLIBC_ALIAS_NFTW
193 CFLAGS-nice-fbsd.c += -DLIBC_ALIAS_NICE
194 CFLAGS-opendir-fbsd.c += -DLIBC_ALIAS___OPENDIR2 -DLIBC_ALIAS_OPENDIR
195 CFLAGS-rewinddir-fbsd.c += -DLIBC_ALIAS_REWINDDIR
196 CFLAGS-pause-fbsd.c += -DLIBC_ALIAS_PAUSE
197 CFLAGS-popen-fbsd.c += -DLIBC_ALIAS_POPEN
198 CFLAGS-pselect-fbsd.c += -DLIBC_ALIAS_PSELECT
199 CFLAGS-seekdir-fbsd.c += -DLIBC_ALIAS_SEEKDIR
200 CFLAGS-setmode-fbsd.c += -DLIBC_ALIAS_SETMODE
201 CFLAGS-sleep-fbsd.c += -DLIBC_ALIAS_SLEEP
202 CFLAGS-telldir-fbsd.c += -DLIBC_ALIAS__SEEKDIR -DLIBC_ALIAS_TELLDIR
203 CFLAGS-termios-fbsd.c += -DLIBC_ALIAS_TCDRAIN
204 CFLAGS-ttyname-fbsd.c += -DLIBC_ALIAS_TTYNAME_R
205 CFLAGS-usleep-fbsd.c += -DLIBC_ALIAS_USLEEP
206 CFLAGS-wait-fbsd.c += -DLIBC_ALIAS_WAIT
207 CFLAGS-waitpid-fbsd.c += -DLIBC_ALIAS_WAITPID
213 confstr.3 crypt.3 devname.3 directory.3 fts.3 ftw.3 \
214 getdomainname.3 getloadavg.3 \
215 getttyent.3 getusershell.3 getvfsbyname.3 \
216 malloc.3 malloc_size.3 malloc_zone_malloc.3 nlist.3 posix_memalign.3 \
217 pwcache.3 setjmp.3 sigsetops.3 strtofflags.3 syslog.3 \
218 tcgetpgrp.3 tcsendbreak.3 tcsetattr.3 tcsetpgrp.3 tzset.3 \
219 uname.3 wordexp.3 intro.3
223 .include "Makefile.fbsd_begin"
224 FBSDMAN3= alarm.3 arc4random.3 basename.3 clock.3 ctermid.3 \
225 daemon.3 dirname.3 err.3 exec.3 \
226 fmtcheck.3 fmtmsg.3 fnmatch.3 ftok.3 \
227 getbsize.3 getcap.3 getcontext.3 getcwd.3 \
228 gethostname.3 getmntinfo.3 getpagesize.3 getpass.3 \
229 getpeereid.3 getprogname.3 glob.3 \
230 lockf.3 makecontext.3 nice.3 \
231 pause.3 popen.3 pselect.3 psignal.3 \
232 raise.3 rand48.3 readpassphrase.3 \
233 scandir.3 setmode.3 \
234 siginterrupt.3 signal.3 signbit.3 sleep.3 \
235 stringlist.3 sysconf.3 sysctl.3 \
236 time.3 times.3 timezone.3 ttyname.3 \
237 ualarm.3 ucontext.3 ulimit.3 unvis.3 usleep.3 utime.3 \
239 .include "Makefile.fbsd_end"
241 .include "Makefile.nbsd_begin"
242 NBSDMAN3= endutxent.3 getlastlogx.3
244 .include "Makefile.nbsd_end"
246 MLINKS+= arc4random.3 arc4random_addrandom.3 \
247 arc4random.3 arc4random_stir.3
249 MLINKS+= asl.3 asl_add_log_file.3 \
257 asl.3 asl_remove_log_file.3 \
261 asl.3 asl_set_filter.3 \
262 asl.3 asl_set_query.3 \
265 asl.3 aslresponse_free.3 \
266 asl.3 aslresponse_next.3
268 MLINKS+= backtrace.3 backtrace_symbols.3 \
269 backtrace.3 backtrace_symbols_fd.3
271 MLINKS+= crypt.3 encrypt.3 \
274 MLINKS+= ctermid.3 ctermid_r.3
276 MLINKS+= devname.3 devname_r.3
278 MLINKS+= directory.3 closedir.3 \
279 directory.3 dirfd.3 \
280 directory.3 opendir.3 \
281 directory.3 readdir.3 \
282 directory.3 readdir_r.3 \
283 directory.3 rewinddir.3 \
284 directory.3 seekdir.3 \
285 directory.3 telldir.3
287 MLINKS+= endutxent.3 getutxent.3 \
288 endutxent.3 getutxid.3 \
289 endutxent.3 getutxline.3 \
290 endutxent.3 pututxline.3 \
291 endutxent.3 setutxent.3
293 MLINKS+= err.3 err_set_exit.3 \
294 err.3 err_set_file.3 \
306 .ifdef FEATURE_BLOCKS
307 MLINKS+= err.3 err_set_exit_b.3
308 .endif # FEATURE_BLOCKS
310 MLINKS+= exec.3 execl.3 \
316 MLINKS+= fts.3 fts_children.3 \
321 .ifdef FEATURE_BLOCKS
322 MLINKS+= fts.3 fts_open_b.3
323 .endif # FEATURE_BLOCKS
325 MLINKS+= ftw.3 nftw.3
327 MLINKS+= getcap.3 cgetcap.3 \
328 getcap.3 cgetclose.3 \
330 getcap.3 cgetfirst.3 \
331 getcap.3 cgetmatch.3 \
332 getcap.3 cgetnext.3 \
338 MLINKS+= getcontext.3 setcontext.3
340 MLINKS+= getcwd.3 getwd.3
342 MLINKS+= getdomainname.3 setdomainname.3
344 MLINKS+= getlastlogx.3 getlastlogxbyname.3 \
345 getlastlogx.3 getutmp.3 \
346 getlastlogx.3 getutmpx.3 \
347 getlastlogx.3 utmpxname.3
349 MLINKS+= gethostname.3 sethostname.3
351 MLINKS+= getprogname.3 setprogname.3
353 MLINKS+= getttyent.3 endttyent.3 \
354 getttyent.3 getttynam.3 \
355 getttyent.3 setttyent.3
357 MLINKS+= getusershell.3 endusershell.3 \
358 getusershell.3 setusershell.3
360 MLINKS+= glob.3 globfree.3
362 MLINKS+= malloc.3 calloc.3 \
365 malloc.3 reallocf.3 \
368 MLINKS+= makecontext.3 swapcontext.3
370 MLINKS+= malloc_size.3 malloc_good_size.3
372 MLINKS+= malloc_zone_malloc.3 malloc_create_zone.3 \
373 malloc_zone_malloc.3 malloc_destroy_zone.3 \
374 malloc_zone_malloc.3 malloc_default_zone.3 \
375 malloc_zone_malloc.3 malloc_zone_from_ptr.3 \
376 malloc_zone_malloc.3 malloc_zone_calloc.3 \
377 malloc_zone_malloc.3 malloc_zone_valloc.3 \
378 malloc_zone_malloc.3 malloc_zone_realloc.3 \
379 malloc_zone_malloc.3 malloc_zone_memalign.3 \
380 malloc_zone_malloc.3 malloc_zone_free.3
382 MLINKS+= popen.3 pclose.3
384 MLINKS+= psignal.3 sys_siglist.3 \
385 psignal.3 sys_signame.3
387 MLINKS+= psignal.3 strsignal.3 \
388 psignal.3 sys_siglist.3 \
389 psignal.3 sys_signame.3
391 MLINKS+= pwcache.3 group_from_gid.3 \
392 pwcache.3 user_from_uid.3
394 MLINKS+= rand48.3 _rand48.3 \
405 MLINKS+= scandir.3 alphasort.3
406 .ifdef FEATURE_BLOCKS
407 MLINKS+= scandir.3 scandir_b.3
408 .endif # FEATURE_BLOCKS
410 MLINKS+= strtofflags.3 fflagstostr.3
412 MLINKS+= setjmp.3 _longjmp.3 \
415 setjmp.3 longjmperr.3 \
416 setjmp.3 longjmperror.3 \
417 setjmp.3 siglongjmp.3 \
420 MLINKS+= setmode.3 getmode.3
422 MLINKS+= sigsetops.3 sigaddset.3 \
423 sigsetops.3 sigdelset.3 \
424 sigsetops.3 sigemptyset.3 \
425 sigsetops.3 sigfillset.3 \
426 sigsetops.3 sigismember.3
428 MLINKS+= stringlist.3 sl_add.3 \
429 stringlist.3 sl_find.3 \
430 stringlist.3 sl_free.3 \
431 stringlist.3 sl_init.3
433 MLINKS+= sysctl.3 sysctlbyname.3 \
434 sysctl.3 sysctlnametomib.3
436 MLINKS+= syslog.3 closelog.3 \
438 syslog.3 setlogmask.3 \
441 MLINKS+= tcsendbreak.3 tcdrain.3 \
442 tcsendbreak.3 tcflow.3 \
443 tcsendbreak.3 tcflush.3
445 MLINKS+= tcsetattr.3 cfgetispeed.3 \
446 tcsetattr.3 cfgetospeed.3 \
447 tcsetattr.3 cfmakeraw.3 \
448 tcsetattr.3 cfsetispeed.3 \
449 tcsetattr.3 cfsetospeed.3 \
450 tcsetattr.3 cfsetspeed.3 \
451 tcsetattr.3 tcgetattr.3
453 MLINKS+= ttyname.3 isatty.3 \
456 MLINKS+= tzset.3 tzsetwall.3
458 MLINKS+= unvis.3 strunvis.3 \
461 MLINKS+= vis.3 strvis.3 \
464 MLINKS+= wordexp.3 wordfree.3