and userspace. In userspace, this is accessed through #include <secure.h> In the kernel, this is access through #include <kern/secure.h> There is a unit test for this (hm1) that computes the hmac and compares it to the known value. The salted vesion tested offline. ----- Also, fixed usespace compile issue with not changing KERNEL_SECRET => SECRET.
		
			
				
	
	
		
			139 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
#
 | 
						|
# Makefile for OS/161 C standard library
 | 
						|
#
 | 
						|
 | 
						|
TOP=../../..
 | 
						|
.include "$(TOP)/mk/os161.config.mk"
 | 
						|
 | 
						|
COMMON=$(TOP)/common/libc
 | 
						|
 | 
						|
# printf
 | 
						|
SRCS+=\
 | 
						|
	$(COMMON)/printf/__printf.c \
 | 
						|
	$(COMMON)/printf/snprintf.c \
 | 
						|
	$(COMMON)/printf/tprintf.c
 | 
						|
 | 
						|
# secure
 | 
						|
SRCS+=\
 | 
						|
	$(COMMON)/secure/secure.c \
 | 
						|
	$(COMMON)/secure/sha256.c \
 | 
						|
 | 
						|
# stdio
 | 
						|
SRCS+=\
 | 
						|
	stdio/__puts.c \
 | 
						|
	stdio/getchar.c \
 | 
						|
	stdio/printf.c \
 | 
						|
	stdio/putchar.c \
 | 
						|
	stdio/puts.c
 | 
						|
 | 
						|
# stdlib
 | 
						|
SRCS+=\
 | 
						|
	stdlib/abort.c \
 | 
						|
	$(COMMON)/stdlib/atoi.c \
 | 
						|
	stdlib/exit.c \
 | 
						|
	stdlib/getenv.c \
 | 
						|
	stdlib/malloc.c \
 | 
						|
	stdlib/qsort.c \
 | 
						|
	stdlib/random.c \
 | 
						|
	stdlib/system.c
 | 
						|
 | 
						|
# string
 | 
						|
SRCS+=\
 | 
						|
	$(COMMON)/string/bzero.c \
 | 
						|
	string/memcmp.c \
 | 
						|
	$(COMMON)/string/memcpy.c \
 | 
						|
	$(COMMON)/string/memmove.c \
 | 
						|
	$(COMMON)/string/memset.c \
 | 
						|
	$(COMMON)/string/strcat.c \
 | 
						|
	$(COMMON)/string/strchr.c \
 | 
						|
	$(COMMON)/string/strcmp.c \
 | 
						|
	$(COMMON)/string/strcpy.c \
 | 
						|
	string/strerror.c \
 | 
						|
	$(COMMON)/string/strlen.c \
 | 
						|
	$(COMMON)/string/strrchr.c \
 | 
						|
	string/strtok.c \
 | 
						|
	$(COMMON)/string/strtok_r.c
 | 
						|
 | 
						|
# time
 | 
						|
SRCS+=\
 | 
						|
	time/time.c
 | 
						|
 | 
						|
# system call stubs
 | 
						|
SRCS+=\
 | 
						|
	$(MYBUILDDIR)/syscalls.S
 | 
						|
 | 
						|
# gcc support
 | 
						|
COMMONGCC=$(TOP)/common/gcc-millicode
 | 
						|
SRCS+=\
 | 
						|
	$(COMMONGCC)/adddi3.c \
 | 
						|
	$(COMMONGCC)/anddi3.c \
 | 
						|
	$(COMMONGCC)/ashldi3.c \
 | 
						|
	$(COMMONGCC)/ashrdi3.c \
 | 
						|
	$(COMMONGCC)/cmpdi2.c \
 | 
						|
	$(COMMONGCC)/divdi3.c \
 | 
						|
	$(COMMONGCC)/iordi3.c \
 | 
						|
	$(COMMONGCC)/lshldi3.c \
 | 
						|
	$(COMMONGCC)/lshrdi3.c \
 | 
						|
	$(COMMONGCC)/moddi3.c \
 | 
						|
	$(COMMONGCC)/muldi3.c \
 | 
						|
	$(COMMONGCC)/negdi2.c \
 | 
						|
	$(COMMONGCC)/notdi2.c \
 | 
						|
	$(COMMONGCC)/qdivrem.c \
 | 
						|
	$(COMMONGCC)/subdi3.c \
 | 
						|
	$(COMMONGCC)/ucmpdi2.c \
 | 
						|
	$(COMMONGCC)/udivdi3.c \
 | 
						|
	$(COMMONGCC)/umoddi3.c \
 | 
						|
	$(COMMONGCC)/xordi3.c
 | 
						|
 | 
						|
 | 
						|
# other stuff
 | 
						|
SRCS+=\
 | 
						|
	unix/__assert.c \
 | 
						|
	unix/err.c \
 | 
						|
	unix/errno.c \
 | 
						|
	unix/execvp.c \
 | 
						|
	unix/getcwd.c \
 | 
						|
	$(COMMON)/arch/mips/setjmp.S
 | 
						|
 | 
						|
# Name of the library.
 | 
						|
LIB=c
 | 
						|
 | 
						|
# Let the templates do most of the work.
 | 
						|
.include  "$(TOP)/mk/os161.lib.mk"
 | 
						|
 | 
						|
#
 | 
						|
# Generate syscall entry points from system call list.
 | 
						|
#
 | 
						|
# Note that this will bomb if the kernel headers haven't been
 | 
						|
# installed into the staging area.
 | 
						|
#
 | 
						|
 | 
						|
SYSCALL_H=$(INSTALLTOP)/include/kern/syscall.h
 | 
						|
 | 
						|
# This is not ideal as it won't rebuild syscalls.S if defs.mk is removed.
 | 
						|
# But it's better than failing if defs.mk is not present.
 | 
						|
.if exists($(TOP)/defs.mk)
 | 
						|
$(MYBUILDDIR)/syscalls.S: $(TOP)/defs.mk
 | 
						|
.endif
 | 
						|
$(MYBUILDDIR)/syscalls.S: $(SYSCALL_H)
 | 
						|
$(MYBUILDDIR)/syscalls.S: syscalls/gensyscalls.sh
 | 
						|
$(MYBUILDDIR)/syscalls.S: arch/$(MACHINE)/syscalls-$(MACHINE).S
 | 
						|
	-rm -f $@ $@.tmp
 | 
						|
	echo '/* Automatically generated; do not edit */' > $@.tmp
 | 
						|
	cat arch/$(MACHINE)/syscalls-$(MACHINE).S >> $@.tmp
 | 
						|
	syscalls/gensyscalls.sh < $(SYSCALL_H) >> $@.tmp
 | 
						|
	mv -f $@.tmp $@
 | 
						|
 | 
						|
clean: cleanhere
 | 
						|
cleanhere:
 | 
						|
	rm -f $(MYBUILDDIR)/syscalls.S
 | 
						|
 | 
						|
predepend:
 | 
						|
	$(MAKE) $(MYBUILDDIR)/syscalls.S
 | 
						|
 | 
						|
.PHONY: clean cleanhere depend predepend
 | 
						|
 | 
						|
# Have the machine-dependent stuff depend on defs.mk in case MACHINE
 | 
						|
# or PLATFORM changes.
 | 
						|
setjmp.o: $(TOP)/defs.mk
 |