112 lines
5.2 KiB
Makefile
112 lines
5.2 KiB
Makefile
TOPSRC = $(shell cd ../..; pwd)
|
|
include $(TOPSRC)/target.mk
|
|
|
|
LIBCDIR = $(TOPSRC)/src/libc
|
|
vpath %.S $(LIBCDIR)/mips/sys $(LIBCDIR)/mips/string $(LIBCDIR)/mips/gen \
|
|
$(LIBCDIR)/runtime
|
|
vpath %.c $(LIBCDIR)/mips/sys $(LIBCDIR)/gen $(LIBCDIR)/stdio \
|
|
$(LIBCDIR)/stdlib $(LIBCDIR)/string $(LIBCDIR)/inet \
|
|
$(LIBCDIR)/compat $(LIBCDIR)/runtime
|
|
|
|
CFLAGS += -B$(TOPSRC)/lib/ $(DEFS) -Wa,-x -Wall -Werror
|
|
ASFLAGS += -B$(TOPSRC)/lib/ $(DEFS) -Wa,-x -I$(LIBCDIR)/mips/sys
|
|
|
|
# modules which can not use SYSCALL and must be assembled from sources. The
|
|
# rest of the system calls are generated with printf(1) and do not have
|
|
# source files associated with them.
|
|
|
|
# libc/mips/sys
|
|
SYSOBJS = __sysctl.o accept.o access.o adjtime.o bind.o chdir.o \
|
|
chflags.o chmod.o chown.o chroot.o close.o connect.o dup.o \
|
|
dup2.o execve.o fchdir.o fchflags.o fchmod.o fchown.o \
|
|
fcntl.o flock.o fork.o fstat.o fsync.o ftruncate.o \
|
|
getdtablesize.o getgroups.o getitimer.o getsockname.o \
|
|
getpeername.o getpriority.o getrlimit.o getrusage.o \
|
|
getsockopt.o gettimeofday.o ioctl.o kill.o killpg.o link.o \
|
|
listen.o lstat.o mkdir.o mknod.o mount.o open.o pselect.o \
|
|
quota.o read.o readlink.o readv.o reboot.o recv.o \
|
|
recvfrom.o recvmsg.o rename.o rmdir.o select.o send.o \
|
|
sendmsg.o sendto.o setgroups.o setitimer.o setpgrp.o \
|
|
setpriority.o setquota.o setuid.o seteuid.o setgid.o \
|
|
setegid.o setrlimit.o setsockopt.o settimeofday.o \
|
|
shutdown.o sigaltstack.o socket.o socketpair.o stat.o \
|
|
symlink.o sigprocmask.o sigstack.o sigwait.o statfs.o \
|
|
fstatfs.o getfsstat.o truncate.o umount.o unlink.o \
|
|
utimes.o wait4.o write.o writev.o lseek.o sigsuspend.o \
|
|
getgid.o getegid.o getpgrp.o getpid.o getppid.o getuid.o \
|
|
geteuid.o profil.o sigpending.o sync.o ufetch.o ustore.o \
|
|
ucall.o umask.o vfork.o vhangup.o rdglob.o wrglob.o
|
|
|
|
OBJS = $(SYSOBJS) sbrk.o execl.o execle.o execv.o \
|
|
_exit.o _brk.o pipe.o ptrace.o sigaction.o
|
|
|
|
# libc/mips/string
|
|
ASFLAGS += -DLWHI=lwr -DLWLO=lwl -DSWHI=swr -DSWLO=swl
|
|
OBJS += bcopy.o bzero.o ffs.o memcpy.o memmove.o memset.o \
|
|
strlen.o bcmp.o index.o rindex.o strcmp.o
|
|
|
|
# libc/mips/gen
|
|
OBJS += _setjmp.o htonl.o htons.o
|
|
|
|
# libc/gen
|
|
OBJS += abort.o alarm.o atof.o atoi.o atol.o calloc.o closedir.o crypt.o \
|
|
ctime.o ctype_.o daemon.o devname.o ecvt.o err.o \
|
|
execvp.o fakcu.o frexp.o fstab.o gcvt.o getenv.o getgrent.o \
|
|
getgrgid.o getgrnam.o getlogin.o \
|
|
getgrouplist.o gethostname.o getpagesize.o \
|
|
getpass.o getpwent.o getloadavg.o getmntinfo.o \
|
|
getttyent.o getttynam.o getusershell.o getwd.o \
|
|
initgroups.o isatty.o isinff.o isnanf.o ldexp.o malloc.o mktemp.o \
|
|
modff.o ndbm.o nlist.o knlist.o opendir.o perror.o popen.o \
|
|
psignal.o qsort.o random.o readdir.o regex.o scandir.o \
|
|
seekdir.o setmode.o sethostname.o setenv.o siglist.o \
|
|
signal.o siginterrupt.o sigsetops.o \
|
|
sleep.o strcasecmp.o strftime.o swab.o sysctl.o syslog.o system.o \
|
|
strcat.o strncat.o strcpy.o strncpy.o strncmp.o \
|
|
telldir.o time.o timezone.o ttyname.o ttyslot.o ualarm.o usleep.o \
|
|
strdup.o uname.o wait.o wait3.o waitpid.o
|
|
|
|
# libc/stdio
|
|
OBJS += fgetc.o fgets.o fputc.o fputs.o gets.o puts.o \
|
|
clrerr.o doscan.o exit.o fdopen.o filbuf.o findiop.o \
|
|
flsbuf.o fopen.o fprintf.o fread.o freopen.o fseek.o \
|
|
ftell.o fwrite.o getchar.o getw.o printf.o putchar.o putw.o \
|
|
rew.o scanf.o setbuf.o setbuffer.o setvbuf.o snprintf.o sprintf.o \
|
|
strout.o ungetc.o vfprintf.o vprintf.o vsprintf.o doprnt.o \
|
|
remove.o feof.o ferror.o fileno.o
|
|
|
|
# libc/stdlib
|
|
OBJS += getopt.o getsubopt.o strtol.o strtoul.o strtod.o
|
|
|
|
# libc/string
|
|
OBJS += strcspn.o strpbrk.o strerror.o strsep.o strspn.o \
|
|
strstr.o strtok.o strtok_r.o
|
|
|
|
# libc/inet
|
|
OBJS += inet_addr.o inet_network.o inet_netof.o \
|
|
inet_ntoa.o inet_lnaof.o inet_maddr.o
|
|
|
|
# libc/compat
|
|
OBJS += creat.o ftime.o gethostid.o gtty.o memccpy.o memchr.o \
|
|
memcmp.o memcpy.o memset.o nice.o pause.o rand.o \
|
|
sethostid.o setregid.o setreuid.o setrgid.o setruid.o \
|
|
sigcompat.o strchr.o strrchr.o stty.o times.o tmpnam.o \
|
|
utime.o
|
|
|
|
# libc/runtime
|
|
OBJS += addsf3.o comparesf2.o divsf3.o fixsfsi.o floatsisf.o \
|
|
mulsf3.o negsf2.o subsf3.o sc_case.o
|
|
|
|
all: ../libc.a
|
|
|
|
../libc.a: ../ar ../ranlib $(OBJS)
|
|
../ar rc $@ $(OBJS)
|
|
../ranlib $@
|
|
|
|
$(SYSOBJS): $(LIBCDIR)/mips/sys/SYS.h
|
|
@echo creating $*.o
|
|
@printf '#include "SYS.h"\nSYS($*)\n' | $(AS) $(ASFLAGS) - -c -o $*.o
|
|
|
|
clean:
|
|
rm -f *~ *.o a.out *.a
|