diff --git a/.gitignore b/.gitignore index 53fade0..a7a1f7d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ *.o *.map *.fex -*.elf out/ .dccache diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index 3957d6c..685fdcd 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -4,7 +4,7 @@ "name": "Fennix x64 (Linux, GCC, debug)", "includePath": [ "${workspaceFolder}/libc/include/**", - "${workspaceFolder}/out/system/include/**", + "${workspaceFolder}/out/usr/include/**", "${workspaceFolder}/libs/include/**", "${workspaceFolder}/libs/include" ], @@ -55,7 +55,7 @@ "name": "Fennix x32 (Linux, GCC, debug)", "includePath": [ "${workspaceFolder}/libc/include/**", - "${workspaceFolder}/out/system/include/**", + "${workspaceFolder}/out/usr/include/**", "${workspaceFolder}/libs/include/**", "${workspaceFolder}/libs/include" ], diff --git a/.vscode/launch.json b/.vscode/launch.json index e97c5e7..133b8a7 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -2,10 +2,10 @@ "version": "0.2.0", "configurations": [ { - "name": "/system/init.elf", + "name": "/init", "type": "cppdbg", "request": "launch", - "program": "${workspaceRoot}/out/system/init.elf", + "program": "${workspaceRoot}/out/init", "cwd": "${workspaceRoot}", "args": [], "targetArchitecture": "x64", @@ -31,16 +31,16 @@ "description": "Make breakpoint pending on future shared library load." }, { - "text": "file ${workspaceRoot}/out/system/init.elf", + "text": "file ${workspaceRoot}/out/init", "description": "Load binary." }, ] }, { - "name": "/system/bin/doom.elf", + "name": "/bin/doom", "type": "cppdbg", "request": "launch", - "program": "${workspaceRoot}/out/system/bin/doom.elf", + "program": "${workspaceRoot}/out/bin/doom", "cwd": "${workspaceRoot}", "args": [], "targetArchitecture": "x64", @@ -66,7 +66,7 @@ "description": "Make breakpoint pending on future shared library load." }, { - "text": "file ${workspaceRoot}/out/system/bin/doom.elf", + "text": "file ${workspaceRoot}/out/bin/doom", "description": "Load binary." }, ] diff --git a/Makefile b/Makefile index 66d3c39..297217d 100644 --- a/Makefile +++ b/Makefile @@ -6,10 +6,9 @@ ifeq ($(NEWLIB),1) make -C mlibc build else mkdir -p out - mkdir -p out/system - mkdir -p out/system/lib - mkdir -p out/system/bin - mkdir -p out/system/include + mkdir -p out/lib + mkdir -p out/bin + mkdir -p out/usr/include make -C libc build make -C libs build make -C apps build diff --git a/apps/base/echo/Makefile b/apps/base/echo/Makefile index 5bccaed..fedc37d 100644 --- a/apps/base/echo/Makefile +++ b/apps/base/echo/Makefile @@ -1,15 +1,13 @@ +WORKSPACE := ../../../ + # Config file -include ../../../../Makefile.conf +include ../$(WORKSPACE)Makefile.conf -FILENAME = echo.elf - -SYSROOT = --sysroot=../../../out/system/ - -CC = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc -CPP = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)g++ -LD = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ld -AS = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as -OBJDUMP = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)objdump +CC = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc +CPP = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)g++ +LD = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ld +AS = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as +OBJDUMP = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)objdump GIT_COMMIT = $(shell git rev-parse HEAD) GIT_COMMIT_SHORT = $(shell git rev-parse --short HEAD) @@ -27,36 +25,26 @@ S_SOURCES = $(shell find ./ -type f -name '*.S' -not -path "./arch/amd64/*" -not C_SOURCES = $(shell find ./ -type f -name '*.c' -not -path "./arch/amd64/*" -not -path "./arch/i386/*") CPP_SOURCES = $(shell find ./ -type f -name '*.cpp' -not -path "./arch/amd64/*" -not -path "./arch/i386/*") endif -HEADERS = $(sort $(dir $(wildcard ../../../out/system/include/*))) OBJ = $(C_SOURCES:.c=.o) $(CPP_SOURCES:.cpp=.o) $(ASM_SOURCES:.asm=.o) $(S_SOURCES:.S=.o) $(PSF_SOURCES:.psf=.o) $(BMP_SOURCES:.bmp=.o) -INCLUDE_DIR = ../../../out/system/include -LDFLAGS := -Wl,-Map file.map +SYSROOT = --sysroot=$(WORKSPACE)out/ +FILENAME = echo -WARNCFLAG = -Wall -Wextra -Wno-builtin-declaration-mismatch +HEADERS = $(sort $(dir $(wildcard $(WORKSPACE)out/usr/include/*))) -CFLAGS := \ - -I$(INCLUDE_DIR) \ +LDFLAGS = +CFLAGS = -I$(WORKSPACE)out/usr/include \ -DGIT_COMMIT='"$(GIT_COMMIT)"' \ -DGIT_COMMIT_SHORT='"$(GIT_COMMIT_SHORT)"' +WARNCFLAG = -Wall -Wextra -ifeq ($(OSARCH), amd64) - -CFLAGS += -march=x86-64 - -else ifeq ($(OSARCH), i386) - -CFLAGS += -march=i386 - -else ifeq ($(OSARCH), aarch64) - -CFLAGS += -pipe - +ifeq ($(DEBUG), 1) + CFLAGS += -DDEBUG -ggdb3 -O0 -fdiagnostics-color=always -fverbose-asm + LDFLAGS += -ggdb3 -O0 endif build: $(FILENAME) - $(OBJDUMP) -d $(FILENAME) > file_dump.map - mv $(FILENAME) ../../../out/system/bin/$(FILENAME) + mv $(FILENAME) $(WORKSPACE)out/bin/$(FILENAME) $(FILENAME): $(OBJ) $(info Linking $@) @@ -72,13 +60,7 @@ $(FILENAME): $(OBJ) %.o: %.S $(info Compiling $<) -ifeq ($(OSARCH), amd64) $(AS) -o $@ $< -else ifeq ($(OSARCH), i386) - $(AS) -o $@ $< -else ifeq ($(OSARCH), aarch64) - $(AS) -o $@ $< -endif clean: - rm -f *.o file.map file_dump.map $(OBJ) + rm -f $(OBJ) diff --git a/apps/system/Makefile b/apps/system/Makefile index ce3ca0d..d3cd073 100644 --- a/apps/system/Makefile +++ b/apps/system/Makefile @@ -1,7 +1,5 @@ build: make -C init build - make -C sh build clean: make -C init clean - make -C sh clean diff --git a/apps/system/init/Makefile b/apps/system/init/Makefile index f5d14ff..8002187 100644 --- a/apps/system/init/Makefile +++ b/apps/system/init/Makefile @@ -1,15 +1,13 @@ +WORKSPACE := ../../../ + # Config file -include ../../../../Makefile.conf +include ../$(WORKSPACE)Makefile.conf -FILENAME = init.elf - -SYSROOT = --sysroot=../../../out/system/ - -CC = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc -CPP = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)g++ -LD = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ld -AS = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as -OBJDUMP = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)objdump +CC = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc +CPP = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)g++ +LD = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ld +AS = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as +OBJDUMP = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)objdump GIT_COMMIT = $(shell git rev-parse HEAD) GIT_COMMIT_SHORT = $(shell git rev-parse --short HEAD) @@ -27,25 +25,21 @@ S_SOURCES = $(shell find ./ -type f -name '*.S' -not -path "./arch/amd64/*" -not C_SOURCES = $(shell find ./ -type f -name '*.c' -not -path "./arch/amd64/*" -not -path "./arch/i386/*") CPP_SOURCES = $(shell find ./ -type f -name '*.cpp' -not -path "./arch/amd64/*" -not -path "./arch/i386/*") endif -HEADERS = $(sort $(dir $(wildcard ../../../out/system/include/*))) OBJ = $(C_SOURCES:.c=.o) $(CPP_SOURCES:.cpp=.o) $(ASM_SOURCES:.asm=.o) $(S_SOURCES:.S=.o) $(PSF_SOURCES:.psf=.o) $(BMP_SOURCES:.bmp=.o) -INCLUDE_DIR = ../../../out/system/include -LDFLAGS := -Wl,-Map file.map +SYSROOT = --sysroot=$(WORKSPACE)out/ +FILENAME = init -WARNCFLAG = -Wall -Wextra -Wno-main +HEADERS = $(sort $(dir $(wildcard $(WORKSPACE)out/usr/include/*))) -CFLAGS := \ - -I$(INCLUDE_DIR) \ +LDFLAGS = +CFLAGS = -I$(WORKSPACE)out/usr/include \ -DGIT_COMMIT='"$(GIT_COMMIT)"' \ -DGIT_COMMIT_SHORT='"$(GIT_COMMIT_SHORT)"' +WARNCFLAG = -Wall -Wextra -ifeq ($(OSARCH), amd64) -CFLAGS += -march=x86-64 -fstack-protector-all -fstack-clash-protection -else ifeq ($(OSARCH), i386) -CFLAGS += -march=i386 -else ifeq ($(OSARCH), aarch64) -CFLAGS += -pipe +ifneq ($(OSARCH), aarch64) +CFLAGS += -fstack-protector-all -fstack-clash-protection endif ifeq ($(DEBUG), 1) @@ -54,8 +48,7 @@ ifeq ($(DEBUG), 1) endif build: $(FILENAME) - $(OBJDUMP) -d $(FILENAME) > file_dump.map - mv $(FILENAME) ../../../out/system/$(FILENAME) + mv $(FILENAME) $(WORKSPACE)out/bin/$(FILENAME) $(FILENAME): $(OBJ) $(info Linking $@) @@ -67,17 +60,11 @@ $(FILENAME): $(OBJ) %.o: %.cpp $(HEADERS) $(info Compiling $<) - $(CPP) $(CFLAGS) $(WARNCFLAG) -std=c++20 -c $< -o $@ + $(CPP) $(CFLAGS) $(WARNCFLAG) -std=c++20 -fexceptions -c $< -o $@ -fno-rtti %.o: %.S $(info Compiling $<) -ifeq ($(OSARCH), amd64) $(AS) -o $@ $< -else ifeq ($(OSARCH), i386) - $(AS) -o $@ $< -else ifeq ($(OSARCH), aarch64) - $(AS) -o $@ $< -endif clean: - rm -f *.o file.map file_dump.map $(OBJ) + rm -f $(OBJ) diff --git a/apps/system/init/init.c b/apps/system/init/init.c index ebaa247..91d6250 100644 --- a/apps/system/init/init.c +++ b/apps/system/init/init.c @@ -55,7 +55,7 @@ int main(int argc, char *argv[], char *envp[]) if (pid == 0) // Child process { print("Creating shell process\n"); - char *args[] = {"/system/bin/sh", "--rcfile /home/default/.shrc", NULL}; + char *args[] = {"/bin/sh", NULL}; execv(args[0], args); exit(EXIT_FAILURE); } diff --git a/apps/system/sh/Makefile b/apps/system/sh/Makefile deleted file mode 100644 index e5c720d..0000000 --- a/apps/system/sh/Makefile +++ /dev/null @@ -1,78 +0,0 @@ -# Config file -include ../../../../Makefile.conf - -FILENAME = sh.elf - -SYSROOT = --sysroot=../../../out/system/ - -CC = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc -CPP = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)g++ -LD = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ld -AS = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as -OBJDUMP = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)objdump - -GIT_COMMIT = $(shell git rev-parse HEAD) -GIT_COMMIT_SHORT = $(shell git rev-parse --short HEAD) - -ifeq ($(OSARCH), amd64) -S_SOURCES = $(shell find ./ -type f -name '*.S' -not -path "./arch/i386/*" -not -path "./arch/aarch64/*") -C_SOURCES = $(shell find ./ -type f -name '*.c' -not -path "./arch/i386/*" -not -path "./arch/aarch64/*") -CPP_SOURCES = $(shell find ./ -type f -name '*.cpp' -not -path "./arch/i386/*" -not -path "./arch/aarch64/*") -else ifeq ($(OSARCH), i386) -S_SOURCES = $(shell find ./ -type f -name '*.S' -not -path "./arch/amd64/*" -not -path "./arch/aarch64/*") -C_SOURCES = $(shell find ./ -type f -name '*.c' -not -path "./arch/amd64/*" -not -path "./arch/aarch64/*") -CPP_SOURCES = $(shell find ./ -type f -name '*.cpp' -not -path "./arch/amd64/*" -not -path "./arch/aarch64/*") -else ifeq ($(OSARCH), aarch64) -S_SOURCES = $(shell find ./ -type f -name '*.S' -not -path "./arch/amd64/*" -not -path "./arch/i386/*") -C_SOURCES = $(shell find ./ -type f -name '*.c' -not -path "./arch/amd64/*" -not -path "./arch/i386/*") -CPP_SOURCES = $(shell find ./ -type f -name '*.cpp' -not -path "./arch/amd64/*" -not -path "./arch/i386/*") -endif -HEADERS = $(sort $(dir $(wildcard ../../../out/system/include/*))) -OBJ = $(C_SOURCES:.c=.o) $(CPP_SOURCES:.cpp=.o) $(ASM_SOURCES:.asm=.o) $(S_SOURCES:.S=.o) $(PSF_SOURCES:.psf=.o) $(BMP_SOURCES:.bmp=.o) -INCLUDE_DIR = ../../../out/system/include - -LDFLAGS := -Wl,-Map file.map - -WARNCFLAG = -Wall -Wextra -Wno-main - -CFLAGS := \ - -I$(INCLUDE_DIR) \ - -DGIT_COMMIT='"$(GIT_COMMIT)"' \ - -DGIT_COMMIT_SHORT='"$(GIT_COMMIT_SHORT)"' - -ifeq ($(OSARCH), amd64) -CFLAGS += -march=x86-64 -fstack-protector-all -fstack-clash-protection -else ifeq ($(OSARCH), i386) -CFLAGS += -march=i386 -else ifeq ($(OSARCH), aarch64) -CFLAGS += -pipe -endif - -build: $(FILENAME) - $(OBJDUMP) -d $(FILENAME) > file_dump.map - mv $(FILENAME) ../../../out/system/bin/$(FILENAME) - -$(FILENAME): $(OBJ) - $(info Linking $@) - $(CC) $(LDFLAGS) $(SYSROOT) $(OBJ) -lssp -linit -o $@ - -%.o: %.c $(HEADERS) - $(info Compiling $<) - $(CC) $(CFLAGS) $(WARNCFLAG) -std=c17 -c $< -o $@ - -%.o: %.cpp $(HEADERS) - $(info Compiling $<) - $(CPP) $(CFLAGS) $(WARNCFLAG) -std=c++20 -c $< -o $@ - -%.o: %.S - $(info Compiling $<) -ifeq ($(OSARCH), amd64) - $(AS) -o $@ $< -else ifeq ($(OSARCH), i386) - $(AS) -o $@ $< -else ifeq ($(OSARCH), aarch64) - $(AS) -o $@ $< -endif - -clean: - rm -f *.o file.map file_dump.map $(OBJ) diff --git a/apps/system/sh/sh.c b/apps/system/sh/sh.c deleted file mode 100644 index 8704da6..0000000 --- a/apps/system/sh/sh.c +++ /dev/null @@ -1,9 +0,0 @@ -#include -#include -#include - -int main(int argc, char *argv[], char *envp[]) -{ - printf("Hello, world!\n"); - return 0; -} diff --git a/apps/user/games/doomgeneric b/apps/user/games/doomgeneric index 604aaae..677271e 160000 --- a/apps/user/games/doomgeneric +++ b/apps/user/games/doomgeneric @@ -1 +1 @@ -Subproject commit 604aaaecbeec33bc72397645bbcee7308ad47a82 +Subproject commit 677271e4b0fba82089cc4dd13ee118e9e997ccb8 diff --git a/libc/ElfInterpreter/Makefile b/libc/ElfInterpreter/Makefile index 5a78254..8b3de98 100644 --- a/libc/ElfInterpreter/Makefile +++ b/libc/ElfInterpreter/Makefile @@ -6,8 +6,8 @@ NAME=ld OBJECT_NAME=$(NAME).so SO_NAME=$(OBJECT_NAME) -OUTPUT_DIR=../../out/system/ -SYSROOT = --sysroot=../../out/system/ +OUTPUT_DIR=../../out/ +SYSROOT = --sysroot=../../out/ CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc AS = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as diff --git a/libc/ElfInterpreter/unused_code b/libc/ElfInterpreter/unused_code index 6e995e4..451cd8c 100644 --- a/libc/ElfInterpreter/unused_code +++ b/libc/ElfInterpreter/unused_code @@ -214,7 +214,7 @@ bool ELFDynamicReallocation(void *ElfFile, void *MemoryImage) { debug("Library \"%s\" not found, retrying... (%#x)", LibPath, LibNode->Status); memset(LibPath, 0, 256); - strcpy(LibPath, "/system/lib/"); + strcpy(LibPath, "/lib/"); strcat(LibPath, Library); AlreadyTried = true; goto LibPathRetry; diff --git a/libc/Makefile b/libc/Makefile index fa32d8f..f52dd5e 100644 --- a/libc/Makefile +++ b/libc/Makefile @@ -1,6 +1,6 @@ build: - cp -r include/* ../out/system/include - cp ../../Kernel/syscalls.h ../out/system/include/sys + cp -r include/* ../out/usr/include + cp ../../Kernel/syscalls.h ../out/usr/include/sys make -C runtime build make -C src build make -C ElfInterpreter build diff --git a/libc/runtime/Makefile b/libc/runtime/Makefile index 6674e76..8ed32d2 100644 --- a/libc/runtime/Makefile +++ b/libc/runtime/Makefile @@ -22,8 +22,8 @@ CRTI_PATH = $(shell $(CC) -print-file-name=crti.o) CRTN_PATH = $(shell $(CC) -print-file-name=crtn.o) build: $(OBJ) - mv $^ ../../out/system/lib/ - cp $(CRTBEGIN_PATH) $(CRTEND_PATH) $(CRTI_PATH) $(CRTN_PATH) ../../out/system/lib/ + mv $^ ../../out/lib/ + cp $(CRTBEGIN_PATH) $(CRTEND_PATH) $(CRTI_PATH) $(CRTN_PATH) ../../out/lib/ %.o: %.c $(info Compiling $<) diff --git a/libc/src/Makefile b/libc/src/Makefile index 9bda9d6..9b00460 100644 --- a/libc/src/Makefile +++ b/libc/src/Makefile @@ -1,15 +1,17 @@ +WORKSPACE := ../../ + # Config file -include ../../../Makefile.conf +include ../$(WORKSPACE)Makefile.conf NAME=c OBJECT_NAME=lib$(NAME).a -OUTPUT_DIR=../../out/system/lib/ +OUTPUT_DIR=$(WORKSPACE)out/lib/ -CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc -AS = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as -AR = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ar +CC = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc +AS = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as +AR = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ar NASM = /usr/bin/nasm C_SOURCES = $(shell find ./ -type f -name '*.c') @@ -19,7 +21,7 @@ ASM_SOURCES = $(shell find ./ -type f -name '*.asm') OBJ = ${C_SOURCES:.c=.o} ${CPP_SOURCES:.cpp=.o} ${ASM_SOURCES:.asm=.o} ${S_SOURCES:.S=.o} INCLUDE = ../include -INCLUDE2 = ../../out/system/include +INCLUDE2 = $(WORKSPACE)out/usr/include ifeq ($(OSARCH), amd64) ASM_ARCH := elf64 @@ -58,4 +60,4 @@ $(OBJECT_NAME): $(OBJ) $(NASM) $< -f $(ASM_ARCH) -o $@ clean: - rm -f $(OBJ) file_dump.map + rm -f $(OBJ) diff --git a/libs/Makefile b/libs/Makefile index 286ae5c..c5945d9 100644 --- a/libs/Makefile +++ b/libs/Makefile @@ -1,14 +1,12 @@ build: - cp -r include/* ../out/system/include + cp -r include/* ../out/usr/include make -C libgcc build make -C libinit build make -C libssp build make -C libsys build - make -C libgraph build clean: make -C libgcc clean make -C libinit clean make -C libssp clean make -C libsys clean - make -C libgraph clean diff --git a/libs/libgcc/Makefile b/libs/libgcc/Makefile index 826c8f4..e4bf1e6 100644 --- a/libs/libgcc/Makefile +++ b/libs/libgcc/Makefile @@ -5,7 +5,7 @@ NAME=gcc OBJECT_NAME=lib$(NAME).a -OUTPUT_DIR=../../out/system/lib/ +OUTPUT_DIR=../../out/lib/ CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc diff --git a/libs/libgraph/Graphics.c b/libs/libgraph/Graphics.c deleted file mode 100644 index c81cae2..0000000 --- a/libs/libgraph/Graphics.c +++ /dev/null @@ -1,15 +0,0 @@ -#include - -#include "../../../Kernel/syscalls.h" - -void DrawRect(int x, int y, int w, int h, int color) -{ - int i, j; - for (i = 0; i < w; i++) - { - for (j = 0; j < h; j++) - { - // TODO: DrawPixel(x + i, y + j, color); - } - } -} diff --git a/libs/libgraph/Makefile b/libs/libgraph/Makefile deleted file mode 100644 index 62ba6ec..0000000 --- a/libs/libgraph/Makefile +++ /dev/null @@ -1,58 +0,0 @@ -# Config file -include ../../../Makefile.conf - -NAME=graph - -OBJECT_NAME=lib$(NAME).so -SO_NAME=$(OBJECT_NAME) - -OUTPUT_DIR=../../out/system/lib/ -SYSROOT = --sysroot=../../out/system/ - -CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc -AS = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as -AR = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ar -OBJDUMP = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)objdump -NASM = /usr/bin/nasm - -C_SOURCES = $(shell find ./ -type f -name '*.c') -CPP_SOURCES = $(shell find ./ -type f -name '*.cpp') -S_SOURCES = $(shell find ./ -type f -name '*.S') -ASM_SOURCES = $(shell find ./ -type f -name '*.asm') -OBJ = ${C_SOURCES:.c=.o} ${CPP_SOURCES:.cpp=.o} ${ASM_SOURCES:.asm=.o} ${S_SOURCES:.S=.o} - -ifeq ($(OSARCH), amd64) -ASM_ARCH := elf64 -else ifeq ($(OSARCH), i386) -ASM_ARCH := elf32 -endif - -SIMD_FLAGS := -mno-sse -mno-sse2 -mno-sse3 -mno-ssse3 -mno-sse4.1 -mno-sse4.2 -mno-sse4 -mno-avx -mno-avx2 -mno-avx512f - -CFLAGS := -fPIC -fPIE -I../include -I../../libc/include $(SIMD_FLAGS) - -build: $(OBJECT_NAME) - -$(OBJECT_NAME): $(OBJ) - $(info Linking $@) - $(CC) -nostdlib -shared -fPIC -fPIE -Wl,-soname,$(SO_NAME) $(SYSROOT) $(OBJ) -o $(OUTPUT_DIR)$@ - $(OBJDUMP) -d $(OUTPUT_DIR)$@ > file_dump.map - -%.o: %.c - $(info Compiling $<) - $(CC) $(CFLAGS) -std=c17 -c $< -o $@ - -%.o: %.cpp - $(info Compiling $<) - $(CC) $(CFLAGS) -std=c++20 -c $< -o $@ - -%.o: %.S - $(info Compiling $<) - $(AS) -c $< -o $@ - -%.o: %.asm - $(info Compiling $<) - $(NASM) $< -f $(ASM_ARCH) -o $@ - -clean: - rm -f file_dump.map $(OBJ) diff --git a/libs/libinit/Makefile b/libs/libinit/Makefile index 404b7c7..0df702e 100644 --- a/libs/libinit/Makefile +++ b/libs/libinit/Makefile @@ -6,8 +6,8 @@ NAME=init OBJECT_NAME=lib$(NAME).so SO_NAME=$(OBJECT_NAME) -OUTPUT_DIR=../../out/system/lib/ -SYSROOT = --sysroot=../../out/system/ +OUTPUT_DIR=../../out/lib/ +SYSROOT = --sysroot=../../out/ CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc AS = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as diff --git a/libs/libssp/Makefile b/libs/libssp/Makefile index 4913632..9a6ab81 100644 --- a/libs/libssp/Makefile +++ b/libs/libssp/Makefile @@ -5,7 +5,7 @@ NAME=ssp OBJECT_NAME=lib$(NAME).a -OUTPUT_DIR=../../out/system/lib/ +OUTPUT_DIR=../../out/lib/ CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc AR = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ar diff --git a/libs/libsys/Makefile b/libs/libsys/Makefile index d53725f..5459873 100644 --- a/libs/libsys/Makefile +++ b/libs/libsys/Makefile @@ -6,8 +6,8 @@ NAME=sys OBJECT_NAME=lib$(NAME).so SO_NAME=$(OBJECT_NAME) -OUTPUT_DIR=../../out/system/lib/ -SYSROOT = --sysroot=../../out/system/ +OUTPUT_DIR=../../out/lib/ +SYSROOT = --sysroot=../../out/ CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc AS = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as