mirror of
https://github.com/EnderIce2/Fennix.git
synced 2025-07-02 02:49:15 +00:00
feat(userspace/libc): support for linux target
Signed-off-by: EnderIce2 <enderice2@protonmail.com>
This commit is contained in:
2
Userspace/docker/.gitignore
vendored
Normal file
2
Userspace/docker/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
cache/*
|
||||
docker-root/*
|
3
Userspace/docker/Dockerfile
Normal file
3
Userspace/docker/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
||||
FROM scratch
|
||||
ADD docker-root /
|
||||
CMD ["/bin/sh"]
|
68
Userspace/docker/Makefile
Normal file
68
Userspace/docker/Makefile
Normal file
@ -0,0 +1,68 @@
|
||||
export DOCKER_ROOT = $(CURDIR)/docker-root
|
||||
DOCKER_IMAGE_NAME = fennix-userspace
|
||||
|
||||
export CMAKE_INSTALL_PREFIX := $(DOCKER_ROOT)
|
||||
export CMAKE_SYSROOT := $(DOCKER_ROOT)
|
||||
|
||||
export LDFLAGS := --sysroot=$(DOCKER_ROOT) \
|
||||
-ggdb3 -O0
|
||||
export CFLAGS := \
|
||||
--sysroot=$(DOCKER_ROOT) \
|
||||
-I$(DOCKER_ROOT)/include \
|
||||
-DDEBUG -ggdb3 -O0 -fdiagnostics-color=always
|
||||
|
||||
create_docker_out:
|
||||
rm -rf cache
|
||||
rm -rf $(DOCKER_ROOT)
|
||||
mkdir -p $(DOCKER_ROOT)
|
||||
mkdir -p $(DOCKER_ROOT)/bin
|
||||
mkdir -p $(DOCKER_ROOT)/etc
|
||||
mkdir -p $(DOCKER_ROOT)/lib
|
||||
mkdir -p $(DOCKER_ROOT)/lib64
|
||||
mkdir -p $(DOCKER_ROOT)/include/linux
|
||||
mkdir -p $(DOCKER_ROOT)/usr/bin
|
||||
mkdir -p $(DOCKER_ROOT)/usr/share/doc
|
||||
mkdir -p $(DOCKER_ROOT)/usr/share/info
|
||||
mkdir -p $(DOCKER_ROOT)/usr/include
|
||||
mkdir -p $(DOCKER_ROOT)/usr/lib
|
||||
|
||||
build_docker_coreutils:
|
||||
mkdir -p cache/coreutils
|
||||
cd cache/coreutils && \
|
||||
cmake $(CURDIR)/../coreutils \
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=$(DOCKER_ROOT) \
|
||||
-DCMAKE_SYSROOT=$(DOCKER_ROOT) \
|
||||
-DCMAKE_C_STANDARD_INCLUDE_DIRECTORIES=$(DOCKER_ROOT)/include \
|
||||
-DCMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES=$(DOCKER_ROOT)/include \
|
||||
&& \
|
||||
make -j$(shell nproc) && \
|
||||
make install
|
||||
|
||||
build_docker_libc:
|
||||
mkdir -p cache/libc
|
||||
cd cache/libc && \
|
||||
cmake $(CURDIR)/../libc \
|
||||
-DCMAKE_INSTALL_PREFIX=$(DOCKER_ROOT) \
|
||||
-DCMAKE_SYSROOT=$(DOCKER_ROOT) \
|
||||
-DCMAKE_INSTALL_INCLUDEDIR=include \
|
||||
-DCMAKE_INSTALL_LIBDIR=lib \
|
||||
-DCMAKE_INSTALL_BINDIR=bin && \
|
||||
make -j$(shell nproc) && \
|
||||
make install
|
||||
|
||||
docker_image:
|
||||
docker build -t $(DOCKER_IMAGE_NAME) -f Dockerfile .
|
||||
|
||||
docker_run:
|
||||
@echo "Running container..."
|
||||
@docker run -it --name fennix-userspace-instance fennix-userspace:latest /bin/sh || true
|
||||
@echo "\nExit code: $$(docker inspect fennix-userspace-instance --format='{{.State.ExitCode}}')"
|
||||
@docker rm fennix-userspace-instance >/dev/null 2>&1
|
||||
|
||||
docker: create_docker_out
|
||||
$(MAKE) build_docker_libc
|
||||
$(MAKE) build_docker_coreutils
|
||||
|
||||
clean:
|
||||
rm -rf cache
|
||||
rm -rf $(DOCKER_ROOT)
|
Reference in New Issue
Block a user