Browse Source

Yet more updates. Getting closer....
-Erik

Eric Andersen 24 years ago
parent
commit
84866232d9
6 changed files with 65 additions and 70 deletions
  1. 1 0
      Makefile
  2. 9 0
      include/stdio.h
  3. 1 0
      include/unistd.h
  4. 20 37
      libc/stdlib/Makefile
  5. 17 16
      libc/string/Makefile
  6. 17 17
      libc/sysdeps/linux/i386/Makefile

+ 1 - 0
Makefile

@@ -58,4 +58,5 @@ dummy:
 clean:
 	-rm -f `find -name \*.[oa]` `find -name \*~` core
 	-rm -rf include/asm include/net include/linux
+	make -C test clean
 

+ 9 - 0
include/stdio.h

@@ -172,6 +172,15 @@ extern int vfprintf __P ((FILE *__restrict __s,
 extern int vsprintf __P ((char *__restrict __s,
 			  __const char *__restrict __format,
 			  va_list __arg));
+/* Maximum chars of output to write in MAXLEN.  */
+extern int snprintf __P ((char *__restrict __s, size_t __maxlen,
+			  __const char *__restrict __format, ...))
+     __attribute__ ((__format__ (__printf__, 3, 4)));
+/* Maximum chars of output to write in MAXLEN.  */
+extern int vsnprintf __P ((char *__restrict __s, size_t __maxlen,
+			   __const char *__restrict __format,
+			   va_list __arg))
+     __attribute__ ((__format__ (__printf__, 3, 0)));
 
 
 

+ 1 - 0
include/unistd.h

@@ -30,6 +30,7 @@ extern void usleep __P ((unsigned long __microseconds));
 extern int pause __P ((void));
 extern char*    crypt __P((__const char *__key, __const char *__salt));
 extern int isatty __P ((int __fd));
+extern char *ttyname __P ((int __fd));
 extern int readlink __P ((__const char *__path, char *__buf, size_t __len));
 extern int link __P ((__const char *__from, __const char *__to));
 extern int symlink __P ((__const char *__from, __const char *__to));

+ 20 - 37
libc/stdlib/Makefile

@@ -4,56 +4,39 @@
 
 TOPDIR=../
 include $(TOPDIR)Rules.make
+LIBC=$(TOPDIR)libc.a
 
-LIBC=../libc.a
 
 MSRC=aliases.c
-MOBJ=abs.o remove.o creat.o bcopy.o bzero.o
-# raise.o bcmp.o index.o rindex.o 
+MOBJ=abs.o remove.o creat.o bcopy.o bzero.o 
+	# raise.o bcmp.o index.o rindex.o 
 
+MSRC2=atexit.c
+MOBJ2=on_exit.o atexit.o __do_exit.o exit.o
 
-ESRC=atexit.c
-EOBJ=on_exit.o atexit.o __do_exit.o exit.o
+CFILES=atoi.c atol.c ltoa.c ltostr.c ctype.c qsort.c bsearch.c rand.c lsearch.c \
+	getopt.c glob.c fnmatch.c itoa.c strtod.c strtol.c crypt.c sleep.c \
+	mkstemp.c  mktemp.c realpath.c getenv.c putenv.c popen.c system.c \
+	getcwd.c setenv.c execl.c execv.c execlp.c execvp.c execvep.c
+COBJS=$(patsubst %.c,%.o, $(CFILES))
 
-GOBJ=atoi.o atol.o ltoa.o ltostr.o \
-     ctype.o qsort.o bsearch.o rand.o lsearch.o getopt.o \
-     glob.o fnmatch.o itoa.o strtol.o crypt.o sleep.o mkstemp.o \
-     mktemp.o realpath.o
 
-UOBJ=getenv.o putenv.o popen.o system.o getcwd.o setenv.o \
-     execl.o execv.o execlp.o execvp.o execvep.o
 
+all: $(COBJS) $(MOBJ) $(MOBJ2) $(LIBC)
 
-OBJ=$(MOBJ) $(EOBJ) $(GOBJ) $(UOBJ)
+$(COBJS): $(CFILES)
+	$(CC) $(CFLAGS) -c $*.c -o $@
 
-## No ELKS strtod() until BCC does 16 bit FP...
-#ifneq ($(LIB_CPU),i86)
-#OBJ+=strtod.o
-#endif
+$(MOBJ): $(MSRC)
+	$(CC) $(CFLAGS) -DL_$* -c $(MSRC) -o $@
 
-all: $(LIBC)
+$(MOBJ2): $(MSRC2)
+	$(CC) $(CFLAGS) -DL_$* -c $(MSRC2) -o $@
 
-$(LIBC): $(LIBC)($(OBJ))
-
-$(LIBC)($(MOBJ)): $(MSRC)
-	$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
-	$(AR) $(ARFLAGS) $@ $*.o
-
-$(LIBC)($(EOBJ)): $(ESRC)
-	$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
-	$(AR) $(ARFLAGS) $@ $*.o
+$(LIBC): $(COBJS) $(MOBJ) $(MOBJ2)
+	$(AR) $(ARFLAGS) $(LIBC) $(COBJS) $(MOBJ) $(MOBJ2)
 
 clean:
-	rm -f *.o libc.a
-
-$(LIBC)(strtol.o): strtol.c
-	$(CC) -c -ansi $(ARCH) $(CCFLAGS) $(DEFS) $*.c
-	$(AR) $(ARFLAGS) $@ $*.o
+	rm -f *.o
 
-$(LIBC)(strtod.o): strtod.c
-	$(CC) -c -ansi $(ARCH) $(CCFLAGS) $(DEFS) $*.c
-	$(AR) $(ARFLAGS) $@ $*.o
 
-$(LIBC)(crypt.o): crypt.c
-	$(CC) -c -ansi $(ARCH) $(CCFLAGS) $(DEFS) $*.c
-	$(AR) $(ARFLAGS) $@ $*.o

+ 17 - 16
libc/string/Makefile

@@ -4,28 +4,29 @@
 
 TOPDIR=../
 include $(TOPDIR)Rules.make
+LIBC=$(TOPDIR)libc.a
 
-LIBC=../libc.a
+MSRC=string.c
+MOBJ=strlen.o strcat.o strcpy.o strcmp.o strncat.o strncpy.o strncmp.o \
+	strchr.o strrchr.o strdup.o memcpy.o memccpy.o memchr.o memset.o \
+	memcmp.o memmove.o movedata.o
+CFILES=strpbrk.c strsep.c strstr.c strtok.c strcspn.c \
+    strspn.c strcasecmp.c strncasecmp.c config.c
+COBJS=$(patsubst %.c,%.o, $(CFILES))
 
-SSRC=string.c
-SOBJ=strlen.o strcat.o strcpy.o strcmp.o strncat.o strncpy.o strncmp.o	\
-    strchr.o strrchr.o strdup.o memcpy.o memccpy.o memchr.o memset.o	\
-    memcmp.o memmove.o movedata.o
 
-OBJ=strpbrk.o strsep.o strstr.o strtok.o strcspn.o	\
-    strspn.o strcasecmp.o strncasecmp.o config.o
+all: $(COBJS) $(MOBJ) $(LIBC)
 
-all: $(LIBC)
+$(COBJS): $(CFILES)
+	$(CC) $(CFLAGS) -c $*.c -o $@
 
-$(LIBC): $(LIBC)($(SOBJ)) $(OBJ) 
+$(MOBJ): $(MSRC)
+	$(CC) $(CFLAGS) -DL_$* -c $(MSRC) -o $@
 
-$(LIBC)($(SOBJ)): $(SSRC)
-	$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
-	$(AR) $(ARFLAGS) $@ $*.o
-
-transfer:
-	-@rm -f ../include/string.h
-	cp -p string.h ../include/.
+$(LIBC): $(COBJS) $(MOBJ)
+	$(AR) $(ARFLAGS) $(LIBC) $(COBJS) $(MOBJ)
 
 clean:
 	rm -f *.o
+
+

+ 17 - 17
libc/sysdeps/linux/i386/Makefile

@@ -5,31 +5,31 @@
 TOPDIR=../../../
 include $(TOPDIR)Rules.make
 
+LIBC=$(TOPDIR)libc.a
 CFLAGS+= -D_GCC_LIMITS_H_
 
-LIBC=$(TOPDIR)libc.a
+MSRC=syscalls.S
+include makefile.objs
+SFILES=setjmp.S longjmp.S _start.S _exit.S #fork.o
+SOBJS=$(patsubst %.S,%.o, $(SFILES))
+CFILES=readdir.c #select.c
+COBJS=$(patsubst %.c,%.o, $(CFILES))
 
-.S.s:
-	$(CC) $(CFLAGS) -D__ASSEMBLY__ -traditional -E -o $*.s $<
-.S.o:
-	$(CC) $(CFLAGS) -c -o $*.o $<
 
-SSRC=syscalls.S
-OBJ= setjmp.o longjmp.o readdir.o _start.o _exit.o fork.o #select.o 
-include makefile.objs
+all: $(SOBJS) $(COBJS) $(MOBJ) $(LIBC)
 
-all: $(LIBC)
+$(SOBJS): $(SFILES)
+	$(CC) $(CFLAGS) -c $*.S -o $@
 
-$(LIBC): $(OBJ) $(LIBC)($(SOBJ))
-	$(AR) $(ARFLAGS) $@ $(OBJ)
+$(COBJS): $(CFILES)
+	$(CC) $(CFLAGS) -c $*.c -o $@
 
-$(LIBC)($(SOBJ)): $(SSRC)
-	$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
-	$(AR) $(ARFLAGS) $@ $*.o
+$(MOBJ): $(MSRC)
+	$(CC) $(CFLAGS) -DL_$* -c $(MSRC) -o $@
 
-transfer:
-	-@rm -f ../include/stdio.h
-	cp -p stdio.h ../include/.
+$(LIBC): $(SOBJS) $(COBJS) $(MOBJ)
+	$(AR) $(ARFLAGS) $(LIBC) $(SOBJS) $(COBJS) $(MOBJ)
 
 clean:
 	rm -f *.o
+