diff --git a/crosscompilemakefile.mak b/crosscompilemakefile.mak index a1ce9423..c10e1eeb 100644 --- a/crosscompilemakefile.mak +++ b/crosscompilemakefile.mak @@ -23,7 +23,7 @@ LIBS=$(LIBC) CPPFLAGS=$(CPUDEFINES) -U_GNU_SOURCE FLAGS=-nostdinc -nostdlib -fno-builtin -nostartfiles -nodefaultlibs -INCLUDES=-I $(LIBMAXSIROOT)/c/h/ -I $(OSROOT)/ +INCLUDES=-I $(LIBMAXSIROOT)/preproc -I $(OSROOT)/ LD=ld LDFLAGS=$(CPULDFLAGS) diff --git a/libmaxsi/.gitignore b/libmaxsi/.gitignore index 22ca5c49..e7af691f 100644 --- a/libmaxsi/.gitignore +++ b/libmaxsi/.gitignore @@ -5,6 +5,4 @@ *.so *.a # Ignore dynamically generated headers. -/*.h -c/h/*.h -c/h/sys/*.h +preproc diff --git a/libmaxsi/Makefile b/libmaxsi/Makefile index 7c1eabca..f9250cc0 100644 --- a/libmaxsi/Makefile +++ b/libmaxsi/Makefile @@ -2,12 +2,13 @@ ifndef CPU CPU=x86 endif +BINS=libc.a libg.a libmaxsi.a libmaxsi-sortix.a + ifeq ($(CPU),x86) CPUDEFINES=-DPLATFORM_X86 CPUFLAGS=-m32 CPULDFLAGS=-melf_i386 CPUASFLAGS=-32 - CPUNASMFLAGS=-felf32 endif ifeq ($(CPU),x64) @@ -16,53 +17,24 @@ ifeq ($(CPU),x64) CPUFLAGS=-fPIC -m64 CPULDFLAGS=-melf_x86_64 CPUASFLAGS=-64 - CPUNASMFLAGS=-felf64 - LIBMAXSI_NO_SHARED=1 # This doesn't work yet endif -DEFINES=-DLIBMAXSI_LIBRARY -DSORTIX -U_GNU_SOURCE $(CPUDEFINES) -FLAGSRELEASE=-O2 -FLAGSDEBUG=-O2 -FLAGS=$(CPUFLAGS) -std=gnu++0x -Wall -Wextra -nostdlib -fno-builtin -nostartfiles -nodefaultlibs -fno-exceptions -fno-stack-protector -nostdinc $(FLAGSRELEASE) $(DEFINES) +CPPINCLUDES=-I preproc -I .. +CPPFLAGS=-DLIBMAXSI_LIBRARY -DSORTIX -U_GNU_SOURCE $(CPUDEFINES) $(CPPINCLUDES) +FLAGS=$(CPUFLAGS) -Wall -Wextra -nostdlib -fno-builtin -nostartfiles \ + -nodefaultlibs -fno-stack-protector -nostdinc +CFLAGS=$(FLAGS) -std=c99 +CXXFLAGS=$(FLAGS) -std=gnu++0x -fno-exceptions -nostdinc++ -fno-rtti LDFLAGS=$(CPULDFLAGS) ASFLAGS=$(CPUASFLAGS) -NASMFLAGS=$(CPUNASMFLAGS) -COBJS=\ -c/ctype.o \ -c/file.o \ -c/fdio.o \ -c/stdio.o \ -c/dir.o \ -c/fddir-sortix.o \ - -CHEADERS=\ -c/h/ctype.h \ -c/h/unistd.h \ -c/h/stdlib.h \ -c/h/wchar.h \ -c/h/stddef.h \ -c/h/fcntl.h \ -c/h/stdarg.h \ -c/h/wctype.h \ -c/h/features.h \ -c/h/string.h \ -c/h/errno.h \ -c/h/error.h \ -c/h/dirent.h \ -c/h/sys/keycodes.h \ -c/h/sys/termmode.h \ -c/h/sys/readdirents.h \ -c/h/sys/stat.h \ -c/h/sys/types.h \ -c/h/sys/wait.h \ -c/h/stdio.h \ -c/h/signal.h \ -c/h/stdint.h \ - -COMMONOBJS=c++.o memory.o heap.o string.o error.o format.o -SORTIXOBJS:=$(addprefix sortix/,$(COMMONOBJS)) -LIBMAXSIOBJS:=$(COMMONOBJS) \ +OBJS=\ +ctype.o \ +file.o \ +fdio.o \ +stdio.o \ +dir.o \ +fddir-sortix.o \ sortix-sound.o \ process.o \ thread.o \ @@ -74,62 +46,29 @@ $(CPU)/signal.o \ start.o \ time.o \ random.o \ -integer.o +integer.o \ +c++.o \ +memory.o \ +heap.o \ +string.o \ +error.o \ +format.o \ -MAXSIHEADERS=\ -error.h \ -io.h \ -memory.h \ -platform.h \ -string.h \ -syscall.h \ -thread.h \ -process.h \ -types.h \ -format.h \ -sortedlist.h \ -signal.h \ -signalnum.h \ -sortix-vga.h \ -sortix-sound.h \ +UNPROCHEADERDIRS:=$(shell find include -type d) +UNPROCHEADERS:=$(shell find include -type f) +HEADERDIRS:=$(patsubst include%,preproc%,$(UNPROCHEADERDIRS)) +HEADERS:=$(patsubst include%,preproc%,$(UNPROCHEADERS)) -OBJS:=$(LIBMAXSIOBJS) -BINS:= +SORTIXOBJS=\ +c++.o \ +memory.o \ +heap.o \ +string.o \ +error.o \ +format.o \ -ifndef LIBMAXSI_SHARED - LIBMAXSI_NO_SHARED=1 -endif - -ifndef LIBMAXSI_NO_SHARED - BINS:=$(BINS) libmaxsi.so -endif - -ifndef LIBMAXSI_NO_STATIC - BINS:=$(BINS) libmaxsi.a -endif - -ifndef LIBMAXSI_NO_SORTIX - BINS:=$(BINS) libmaxsi-sortix.a -endif - -ifndef LIBMAXSI_NO_LIBC - OBJS:=$(OBJS) $(COBJS) - ifndef LIBMAXSI_NO_SHARED - BINS:=$(BINS) libc.so libg.so - endif - ifndef LIBMAXSI_NO_STATIC - BINS:=$(BINS) libc.a libg.a - endif - - HEADERS:=$(MAXSIHEADERS) $(CHEADERS) - -else - DEFINES:=$(DEFINES) -DLIBMAXSI_NO_LIBC -endif - -CFLAGS:=$(FLAGS) -std=c99 -Ic/h -I.. -CXXFLAGS:=$(FLAGS) -nostdinc++ -fno-rtti -I.. -Ic/h -SORTIXFLAGS:=$(CXXFLAGS) -DSORTIX_KERNEL -I.. -I../.. +SORTIXOBJS:=$(addprefix sortix/,$(SORTIXOBJS)) +SORTIXCPPFLAGS:=-DSORTIX_KERNEL all: $(BINS) @@ -157,57 +96,44 @@ libg.so: libc.so start.o: $(CPU)/start.o ln -sf $< $@ -# libmaxsi +# header preprocessing +$(HEADERDIRS): + mkdir -p $@ -*.cpp: $(HEADERS) +preproc/%: include/% + mxmpp -I decl $< -o $@ -%.o: %.cpp - g++ -c $< -o $@ $(CXXFLAGS) - -%.h: hsrc/%.h - echo "/* WARNING: This header is generated - edits will be lost! */" > $@ - mxmpp -I decl $< >> $@ +headers: $(HEADERDIRS) $(HEADERS) + +# standard library +%.o: %.c headers + gcc -c $< -o $@ $(CPPFLAGS) $(CFLAGS) + +%.o: %.cpp headers + g++ -c $< -o $@ $(CPPFLAGS) $(CXXFLAGS) %.o: %.s as $(ASFLAGS) $< -o $@ -%.o: %.asm - nasm $(CPUNASMFLAGS) $< -o $@ - -# libc - -c/*.c: $(CHEADERS) - -c/%.o: c/%.c - gcc -c $< -o $@ $(CFLAGS) - -c/h/%.h: c/hsrc/%.h - mkdir -p c/h - mkdir -p c/h/sys - echo "/* WARNING: This header is generated - edits will be lost! */" > $@ - mxmpp -I decl -I c/decl $< >> $@ - # libmaxsi-sortix +sortix: + mkdir -p sortix -sortix/*.cpp: $(HEADERS) - -sortix/%.o: %.cpp $(HEADERS) - g++ -c $< -o $@ $(SORTIXFLAGS) - -sortix/%.o: sortix/%.cpp - g++ -c $< -o $@ $(SORTIXFLAGS) +sortix/%.o: %.cpp $(HEADERS) sortix + g++ -c $< -o $@ $(CPPFLAGS) $(SORTIXCPPFLAGS) $(CXXFLAGS) clean: - rm -f *.o sortix/*.o c/*.o x86/*.o x64/*.o *.a *.so $(CHEADERS) $(HEADERS) + rm -f *.o sortix/*.o c/*.o x86/*.o x64/*.o *.a *.so + rm -f $(OBJS) + rm -rf sortix $(HEADERDIRS) # Installation into sysroot install: mkdir -p $(SYSROOT)/usr/lib for F in $(BINS); do cp -P $$F $(SYSROOT)/usr/lib || exit $?; done + for D in $(UNPROCHEADERDIRS); do mkdir -p $(SYSROOT)/usr/$$D || exit $?; done + for SRC in $(HEADERS); do DEST=`echo $$SRC | sed 's/preproc/include/'`; cp $$SRC $(SYSROOT)/usr/$$DEST || exit $?; done mkdir -p $(SYSROOT)/usr/include - for F in $(CHEADERS); do F=`echo $$F | sed 's/c\/h\///g'`; mkdir -p $(SYSROOT)/usr/include/`dirname $$F`; cp c/h/$$F $(SYSROOT)/usr/include/$$F || exit $?; done - mkdir -p $(SYSROOT)/usr/include/libmaxsi - for F in $(MAXSIHEADERS); do cp $$F $(SYSROOT)/usr/include/libmaxsi || exit $?; done cp start.o $(SYSROOT)/usr/lib/crtbegin.o touch deleteme.cpp g++ $(CPUFLAGS) -c deleteme.cpp -o deleteme.o diff --git a/libmaxsi/c++.cpp b/libmaxsi/c++.cpp index 945c415c..a27e5fef 100644 --- a/libmaxsi/c++.cpp +++ b/libmaxsi/c++.cpp @@ -22,7 +22,7 @@ ******************************************************************************/ -#include "platform.h" +#include extern "C" void __cxa_pure_virtual() { diff --git a/libmaxsi/c/string.c b/libmaxsi/c/string.c deleted file mode 100644 index 1be26876..00000000 --- a/libmaxsi/c/string.c +++ /dev/null @@ -1,35 +0,0 @@ -/****************************************************************************** - - COPYRIGHT(C) JONAS 'SORTIE' TERMANSEN 2011. - - This file is part of LibMaxsi. - - LibMaxsi is free software: you can redistribute it and/or modify it under - the terms of the GNU Lesser General Public License as published by the Free - Software Foundation, either version 3 of the License, or (at your option) - any later version. - - LibMaxsi is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for - more details. - - You should have received a copy of the GNU Lesser General Public License - along with LibMaxsi. If not, see . - - string.c - Implements things from that is slightly incompatible with - how libmaxsi does stuff. - -******************************************************************************/ - -#include - -char* strdup(const char* input) -{ - size_t inputsize = strlen(input); - char* result = (char*) malloc(inputsize + 1); - if ( result == NULL ) { return NULL; } - memcpy(result, input, inputsize + 1); - return result; -} diff --git a/libmaxsi/c/ctype.c b/libmaxsi/ctype.c similarity index 100% rename from libmaxsi/c/ctype.c rename to libmaxsi/ctype.c diff --git a/libmaxsi/c/decl/DIR.h b/libmaxsi/decl/DIR.h similarity index 100% rename from libmaxsi/c/decl/DIR.h rename to libmaxsi/decl/DIR.h diff --git a/libmaxsi/c/decl/FILE.h b/libmaxsi/decl/FILE.h similarity index 100% rename from libmaxsi/c/decl/FILE.h rename to libmaxsi/decl/FILE.h diff --git a/libmaxsi/c/decl/SEEK_CUR.h b/libmaxsi/decl/SEEK_CUR.h similarity index 100% rename from libmaxsi/c/decl/SEEK_CUR.h rename to libmaxsi/decl/SEEK_CUR.h diff --git a/libmaxsi/c/decl/SEEK_END.h b/libmaxsi/decl/SEEK_END.h similarity index 100% rename from libmaxsi/c/decl/SEEK_END.h rename to libmaxsi/decl/SEEK_END.h diff --git a/libmaxsi/c/decl/SEEK_SET.h b/libmaxsi/decl/SEEK_SET.h similarity index 100% rename from libmaxsi/c/decl/SEEK_SET.h rename to libmaxsi/decl/SEEK_SET.h diff --git a/libmaxsi/c/decl/WEOF.h b/libmaxsi/decl/WEOF.h similarity index 100% rename from libmaxsi/c/decl/WEOF.h rename to libmaxsi/decl/WEOF.h diff --git a/libmaxsi/c/decl/useconds_t.h b/libmaxsi/decl/useconds_t.h similarity index 100% rename from libmaxsi/c/decl/useconds_t.h rename to libmaxsi/decl/useconds_t.h diff --git a/libmaxsi/c/decl/wctrans_t.h b/libmaxsi/decl/wctrans_t.h similarity index 100% rename from libmaxsi/c/decl/wctrans_t.h rename to libmaxsi/decl/wctrans_t.h diff --git a/libmaxsi/c/decl/wctype_t.h b/libmaxsi/decl/wctype_t.h similarity index 100% rename from libmaxsi/c/decl/wctype_t.h rename to libmaxsi/decl/wctype_t.h diff --git a/libmaxsi/c/dir.c b/libmaxsi/dir.c similarity index 100% rename from libmaxsi/c/dir.c rename to libmaxsi/dir.c diff --git a/libmaxsi/error.cpp b/libmaxsi/error.cpp index 61391b23..01065af9 100644 --- a/libmaxsi/error.cpp +++ b/libmaxsi/error.cpp @@ -22,10 +22,10 @@ ******************************************************************************/ -#include "platform.h" -#include "error.h" +#include +#include #ifndef SORTIX_KERNEL -#include "syscall.h" +#include #include #endif diff --git a/libmaxsi/c/fddir-sortix.c b/libmaxsi/fddir-sortix.c similarity index 100% rename from libmaxsi/c/fddir-sortix.c rename to libmaxsi/fddir-sortix.c diff --git a/libmaxsi/c/fdio.c b/libmaxsi/fdio.c similarity index 100% rename from libmaxsi/c/fdio.c rename to libmaxsi/fdio.c diff --git a/libmaxsi/c/fdio.h b/libmaxsi/fdio.h similarity index 100% rename from libmaxsi/c/fdio.h rename to libmaxsi/fdio.h diff --git a/libmaxsi/c/file.c b/libmaxsi/file.c similarity index 100% rename from libmaxsi/c/file.c rename to libmaxsi/file.c diff --git a/libmaxsi/format.cpp b/libmaxsi/format.cpp index 807ac9ea..7f430611 100644 --- a/libmaxsi/format.cpp +++ b/libmaxsi/format.cpp @@ -22,9 +22,9 @@ ******************************************************************************/ -#include "platform.h" -#include "string.h" -#include "format.h" +#include +#include +#include namespace Maxsi { diff --git a/libmaxsi/heap.cpp b/libmaxsi/heap.cpp index 881201ff..5185f580 100644 --- a/libmaxsi/heap.cpp +++ b/libmaxsi/heap.cpp @@ -22,9 +22,9 @@ ******************************************************************************/ -#include "platform.h" -#include "memory.h" -#include "error.h" +#include +#include +#include #ifdef SORTIX_KERNEL #define HEAP_GROWS_DOWNWARDS diff --git a/libmaxsi/c/hsrc/ctype.h b/libmaxsi/include/ctype.h similarity index 100% rename from libmaxsi/c/hsrc/ctype.h rename to libmaxsi/include/ctype.h diff --git a/libmaxsi/c/hsrc/dirent.h b/libmaxsi/include/dirent.h similarity index 100% rename from libmaxsi/c/hsrc/dirent.h rename to libmaxsi/include/dirent.h diff --git a/libmaxsi/c/hsrc/errno.h b/libmaxsi/include/errno.h similarity index 100% rename from libmaxsi/c/hsrc/errno.h rename to libmaxsi/include/errno.h diff --git a/libmaxsi/c/hsrc/error.h b/libmaxsi/include/error.h similarity index 100% rename from libmaxsi/c/hsrc/error.h rename to libmaxsi/include/error.h diff --git a/libmaxsi/c/hsrc/fcntl.h b/libmaxsi/include/fcntl.h similarity index 100% rename from libmaxsi/c/hsrc/fcntl.h rename to libmaxsi/include/fcntl.h diff --git a/libmaxsi/c/hsrc/features.h b/libmaxsi/include/features.h similarity index 99% rename from libmaxsi/c/hsrc/features.h rename to libmaxsi/include/features.h index fb5b5e90..c98a0c34 100644 --- a/libmaxsi/c/hsrc/features.h +++ b/libmaxsi/include/features.h @@ -41,7 +41,7 @@ !defined(_SVID_SOURCE) && \ !defined(_XOPEN_SOURCE) && !defined(_XOPEN_SOURCE_EXTENDED) && \ !defined(_GNU_SOURCE) && \ - true + 1 #define _SORTIX_SOURCE 1 #endif diff --git a/libmaxsi/hsrc/error.h b/libmaxsi/include/libmaxsi/error.h similarity index 100% rename from libmaxsi/hsrc/error.h rename to libmaxsi/include/libmaxsi/error.h diff --git a/libmaxsi/hsrc/format.h b/libmaxsi/include/libmaxsi/format.h similarity index 100% rename from libmaxsi/hsrc/format.h rename to libmaxsi/include/libmaxsi/format.h diff --git a/libmaxsi/hsrc/io.h b/libmaxsi/include/libmaxsi/io.h similarity index 100% rename from libmaxsi/hsrc/io.h rename to libmaxsi/include/libmaxsi/io.h diff --git a/libmaxsi/hsrc/memory.h b/libmaxsi/include/libmaxsi/memory.h similarity index 100% rename from libmaxsi/hsrc/memory.h rename to libmaxsi/include/libmaxsi/memory.h diff --git a/libmaxsi/hsrc/platform.h b/libmaxsi/include/libmaxsi/platform.h similarity index 100% rename from libmaxsi/hsrc/platform.h rename to libmaxsi/include/libmaxsi/platform.h diff --git a/libmaxsi/hsrc/process.h b/libmaxsi/include/libmaxsi/process.h similarity index 100% rename from libmaxsi/hsrc/process.h rename to libmaxsi/include/libmaxsi/process.h diff --git a/libmaxsi/hsrc/signal.h b/libmaxsi/include/libmaxsi/signal.h similarity index 100% rename from libmaxsi/hsrc/signal.h rename to libmaxsi/include/libmaxsi/signal.h diff --git a/libmaxsi/hsrc/signalnum.h b/libmaxsi/include/libmaxsi/signalnum.h similarity index 100% rename from libmaxsi/hsrc/signalnum.h rename to libmaxsi/include/libmaxsi/signalnum.h diff --git a/libmaxsi/hsrc/sortedlist.h b/libmaxsi/include/libmaxsi/sortedlist.h similarity index 100% rename from libmaxsi/hsrc/sortedlist.h rename to libmaxsi/include/libmaxsi/sortedlist.h diff --git a/libmaxsi/hsrc/sortix-sound.h b/libmaxsi/include/libmaxsi/sortix-sound.h similarity index 100% rename from libmaxsi/hsrc/sortix-sound.h rename to libmaxsi/include/libmaxsi/sortix-sound.h diff --git a/libmaxsi/hsrc/sortix-vga.h b/libmaxsi/include/libmaxsi/sortix-vga.h similarity index 100% rename from libmaxsi/hsrc/sortix-vga.h rename to libmaxsi/include/libmaxsi/sortix-vga.h diff --git a/libmaxsi/hsrc/string.h b/libmaxsi/include/libmaxsi/string.h similarity index 100% rename from libmaxsi/hsrc/string.h rename to libmaxsi/include/libmaxsi/string.h diff --git a/libmaxsi/hsrc/syscall.h b/libmaxsi/include/libmaxsi/syscall.h similarity index 100% rename from libmaxsi/hsrc/syscall.h rename to libmaxsi/include/libmaxsi/syscall.h diff --git a/libmaxsi/hsrc/thread.h b/libmaxsi/include/libmaxsi/thread.h similarity index 100% rename from libmaxsi/hsrc/thread.h rename to libmaxsi/include/libmaxsi/thread.h diff --git a/libmaxsi/hsrc/types.h b/libmaxsi/include/libmaxsi/types.h similarity index 100% rename from libmaxsi/hsrc/types.h rename to libmaxsi/include/libmaxsi/types.h diff --git a/libmaxsi/c/hsrc/signal.h b/libmaxsi/include/signal.h similarity index 100% rename from libmaxsi/c/hsrc/signal.h rename to libmaxsi/include/signal.h diff --git a/libmaxsi/c/hsrc/stdarg.h b/libmaxsi/include/stdarg.h similarity index 100% rename from libmaxsi/c/hsrc/stdarg.h rename to libmaxsi/include/stdarg.h diff --git a/libmaxsi/c/hsrc/stddef.h b/libmaxsi/include/stddef.h similarity index 100% rename from libmaxsi/c/hsrc/stddef.h rename to libmaxsi/include/stddef.h diff --git a/libmaxsi/c/hsrc/stdint.h b/libmaxsi/include/stdint.h similarity index 100% rename from libmaxsi/c/hsrc/stdint.h rename to libmaxsi/include/stdint.h diff --git a/libmaxsi/c/hsrc/stdio.h b/libmaxsi/include/stdio.h similarity index 100% rename from libmaxsi/c/hsrc/stdio.h rename to libmaxsi/include/stdio.h diff --git a/libmaxsi/c/hsrc/stdlib.h b/libmaxsi/include/stdlib.h similarity index 100% rename from libmaxsi/c/hsrc/stdlib.h rename to libmaxsi/include/stdlib.h diff --git a/libmaxsi/c/hsrc/string.h b/libmaxsi/include/string.h similarity index 100% rename from libmaxsi/c/hsrc/string.h rename to libmaxsi/include/string.h diff --git a/libmaxsi/c/hsrc/sys/keycodes.h b/libmaxsi/include/sys/keycodes.h similarity index 100% rename from libmaxsi/c/hsrc/sys/keycodes.h rename to libmaxsi/include/sys/keycodes.h diff --git a/libmaxsi/c/hsrc/sys/readdirents.h b/libmaxsi/include/sys/readdirents.h similarity index 100% rename from libmaxsi/c/hsrc/sys/readdirents.h rename to libmaxsi/include/sys/readdirents.h diff --git a/libmaxsi/c/hsrc/sys/stat.h b/libmaxsi/include/sys/stat.h similarity index 100% rename from libmaxsi/c/hsrc/sys/stat.h rename to libmaxsi/include/sys/stat.h diff --git a/libmaxsi/c/hsrc/sys/termmode.h b/libmaxsi/include/sys/termmode.h similarity index 100% rename from libmaxsi/c/hsrc/sys/termmode.h rename to libmaxsi/include/sys/termmode.h diff --git a/libmaxsi/c/hsrc/sys/types.h b/libmaxsi/include/sys/types.h similarity index 100% rename from libmaxsi/c/hsrc/sys/types.h rename to libmaxsi/include/sys/types.h diff --git a/libmaxsi/c/hsrc/sys/wait.h b/libmaxsi/include/sys/wait.h similarity index 100% rename from libmaxsi/c/hsrc/sys/wait.h rename to libmaxsi/include/sys/wait.h diff --git a/libmaxsi/c/hsrc/unistd.h b/libmaxsi/include/unistd.h similarity index 100% rename from libmaxsi/c/hsrc/unistd.h rename to libmaxsi/include/unistd.h diff --git a/libmaxsi/c/hsrc/wchar.h b/libmaxsi/include/wchar.h similarity index 100% rename from libmaxsi/c/hsrc/wchar.h rename to libmaxsi/include/wchar.h diff --git a/libmaxsi/c/hsrc/wctype.h b/libmaxsi/include/wctype.h similarity index 100% rename from libmaxsi/c/hsrc/wctype.h rename to libmaxsi/include/wctype.h diff --git a/libmaxsi/init.cpp b/libmaxsi/init.cpp index 958aaa88..69d354b9 100644 --- a/libmaxsi/init.cpp +++ b/libmaxsi/init.cpp @@ -23,11 +23,11 @@ ******************************************************************************/ -#include "platform.h" -#include "signal.h" -#include "string.h" -#include "io.h" -#include "memory.h" +#include +#include +#include +#include +#include namespace Maxsi { diff --git a/libmaxsi/integer.cpp b/libmaxsi/integer.cpp index f1cae182..1a051607 100644 --- a/libmaxsi/integer.cpp +++ b/libmaxsi/integer.cpp @@ -23,7 +23,7 @@ ******************************************************************************/ -#include "platform.h" +#include namespace Maxsi { diff --git a/libmaxsi/io.cpp b/libmaxsi/io.cpp index 771ffbc7..8965da7a 100644 --- a/libmaxsi/io.cpp +++ b/libmaxsi/io.cpp @@ -22,12 +22,12 @@ ******************************************************************************/ -#include "platform.h" -#include "syscall.h" -#include "io.h" -#include "format.h" -#include "string.h" -#include "memory.h" +#include +#include +#include +#include +#include +#include #include #include #include diff --git a/libmaxsi/memory.cpp b/libmaxsi/memory.cpp index c13c58a1..e31a85e9 100644 --- a/libmaxsi/memory.cpp +++ b/libmaxsi/memory.cpp @@ -22,11 +22,11 @@ ******************************************************************************/ -#include "platform.h" -#include "memory.h" -#include "error.h" +#include +#include +#include #ifndef SORTIX_KERNEL -#include "syscall.h" +#include #endif namespace Maxsi diff --git a/libmaxsi/process.cpp b/libmaxsi/process.cpp index 53b49a32..b69f563b 100644 --- a/libmaxsi/process.cpp +++ b/libmaxsi/process.cpp @@ -22,9 +22,9 @@ ******************************************************************************/ -#include "platform.h" -#include "syscall.h" -#include "process.h" +#include +#include +#include #include #include diff --git a/libmaxsi/random.cpp b/libmaxsi/random.cpp index 9bbef8de..3f4aef37 100644 --- a/libmaxsi/random.cpp +++ b/libmaxsi/random.cpp @@ -22,7 +22,7 @@ ******************************************************************************/ -#include "platform.h" +#include namespace Maxsi { diff --git a/libmaxsi/signal.cpp b/libmaxsi/signal.cpp index a482c312..12d7e9b5 100644 --- a/libmaxsi/signal.cpp +++ b/libmaxsi/signal.cpp @@ -22,12 +22,12 @@ ******************************************************************************/ -#include "platform.h" -#include "string.h" -#include "memory.h" -#include "syscall.h" -#include "process.h" -#include "signal.h" +#include +#include +#include +#include +#include +#include #include namespace Maxsi diff --git a/libmaxsi/sortix-sound.cpp b/libmaxsi/sortix-sound.cpp index 65f43e58..d8716bbe 100644 --- a/libmaxsi/sortix-sound.cpp +++ b/libmaxsi/sortix-sound.cpp @@ -23,9 +23,9 @@ ******************************************************************************/ -#include "platform.h" -#include "syscall.h" -#include "sortix-sound.h" +#include +#include +#include namespace System { diff --git a/libmaxsi/sortix/.gitignore b/libmaxsi/sortix/.gitignore deleted file mode 100644 index 8b137891..00000000 --- a/libmaxsi/sortix/.gitignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/libmaxsi/c/stdio.c b/libmaxsi/stdio.c similarity index 100% rename from libmaxsi/c/stdio.c rename to libmaxsi/stdio.c diff --git a/libmaxsi/string.cpp b/libmaxsi/string.cpp index 8569b796..d89f25dd 100644 --- a/libmaxsi/string.cpp +++ b/libmaxsi/string.cpp @@ -22,9 +22,11 @@ ******************************************************************************/ -#include "platform.h" -#include "string.h" -#include "memory.h" +#include +#include +#include +#include +#include namespace Maxsi { @@ -224,6 +226,17 @@ namespace Maxsi return result; } +#ifndef SORTIX_KERNEL + extern "C" char* strdup(const char* input) + { + size_t inputsize = strlen(input); + char* result = (char*) malloc(inputsize + 1); + if ( result == NULL ) { return NULL; } + memcpy(result, input, inputsize + 1); + return result; + } +#endif + #if 0 char* Combine(size_t NumParameters, ...) { diff --git a/libmaxsi/terminal.cpp b/libmaxsi/terminal.cpp index ba1bacab..c23ad57e 100644 --- a/libmaxsi/terminal.cpp +++ b/libmaxsi/terminal.cpp @@ -22,8 +22,8 @@ ******************************************************************************/ -#include "platform.h" -#include "syscall.h" +#include +#include #include #include diff --git a/libmaxsi/thread.cpp b/libmaxsi/thread.cpp index c2ebdf43..82d7675c 100644 --- a/libmaxsi/thread.cpp +++ b/libmaxsi/thread.cpp @@ -22,12 +22,12 @@ ******************************************************************************/ -#include "platform.h" +#include #ifdef LIBMAXSI_LIBC #include #endif -#include "syscall.h" -#include "thread.h" +#include +#include #ifdef SORTIX_KERNEL extern "C" void PanicF(const char* Format, ...); diff --git a/libmaxsi/time.cpp b/libmaxsi/time.cpp index e40c9cc9..35d3e98e 100644 --- a/libmaxsi/time.cpp +++ b/libmaxsi/time.cpp @@ -22,10 +22,10 @@ ******************************************************************************/ -#include "platform.h" -#include "string.h" -#include "memory.h" -#include "syscall.h" +#include +#include +#include +#include namespace Maxsi { diff --git a/sortix/Makefile b/sortix/Makefile index 1cab5e3d..038fab12 100644 --- a/sortix/Makefile +++ b/sortix/Makefile @@ -59,7 +59,7 @@ else endif CPPFLAGSRELEASE=-s $(O) CPPFLAGSDEBUG= -CPPFLAGS=-I.. -I. $(CPUDEFINES) $(CPUFLAGS) -std=gnu++0x -Wall -Wextra -nostdlib -fno-builtin -nostartfiles -nodefaultlibs -fno-exceptions -fno-rtti -fno-stack-protector $(DEFINES) $(CPPFLAGSRELEASE) +CPPFLAGS=-I ../libmaxsi/preproc -I.. -I. $(CPUDEFINES) $(CPUFLAGS) -std=gnu++0x -Wall -Wextra -nostdlib -fno-builtin -nostartfiles -nodefaultlibs -fno-exceptions -fno-rtti -fno-stack-protector $(DEFINES) $(CPPFLAGSRELEASE) OBJS=$(CPUOBJS) \ kernel.o \ descriptor_tables.o \