mirror of
https://github.com/Fennix-Project/Userspace.git
synced 2025-05-25 22:14:28 +00:00
Update filesystem structure
This commit is contained in:
parent
78cfe17749
commit
d9485978bb
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,6 +1,5 @@
|
||||
*.o
|
||||
*.map
|
||||
*.fex
|
||||
*.elf
|
||||
out/
|
||||
.dccache
|
||||
|
4
.vscode/c_cpp_properties.json
vendored
4
.vscode/c_cpp_properties.json
vendored
@ -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"
|
||||
],
|
||||
|
12
.vscode/launch.json
vendored
12
.vscode/launch.json
vendored
@ -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."
|
||||
},
|
||||
]
|
||||
|
7
Makefile
7
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
|
||||
|
@ -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)
|
||||
|
@ -1,7 +1,5 @@
|
||||
build:
|
||||
make -C init build
|
||||
make -C sh build
|
||||
|
||||
clean:
|
||||
make -C init clean
|
||||
make -C sh clean
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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)
|
@ -1,9 +0,0 @@
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <aux.h>
|
||||
|
||||
int main(int argc, char *argv[], char *envp[])
|
||||
{
|
||||
printf("Hello, world!\n");
|
||||
return 0;
|
||||
}
|
@ -1 +1 @@
|
||||
Subproject commit 604aaaecbeec33bc72397645bbcee7308ad47a82
|
||||
Subproject commit 677271e4b0fba82089cc4dd13ee118e9e997ccb8
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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 $<)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -1,15 +0,0 @@
|
||||
#include <libdraw.h>
|
||||
|
||||
#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);
|
||||
}
|
||||
}
|
||||
}
|
@ -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)
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user