starting project
This commit is contained in:
commit
608ea5c5dc
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
build
|
||||||
|
*.so
|
39
Makefile
Normal file
39
Makefile
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
CC := gcc
|
||||||
|
LD := $(CC)
|
||||||
|
LDFLAGS :=
|
||||||
|
CFLAGS := $(shell cat compile_flags.txt | sed -z "s/\n/ /g")
|
||||||
|
SRC := $(wildcard src/*.c)
|
||||||
|
LIB := lib/lib.a
|
||||||
|
OBJ_DIR := build
|
||||||
|
OBJ := $(addprefix $(OBJ_DIR)/, $(patsubst %.c,%.o,$(SRC)))
|
||||||
|
DIR := .
|
||||||
|
RAW_NAME:= libft_malloc
|
||||||
|
ifeq ($(HOSTTYPE),)
|
||||||
|
HOSTTYPE := $(shell uname -m)_$(shell uname -s)
|
||||||
|
endif
|
||||||
|
NAME := $(RAW_NAME).so
|
||||||
|
NAME_L := $(RAW_NAME)_$(HOSTTYPE).so
|
||||||
|
|
||||||
|
all: $(NAME)
|
||||||
|
|
||||||
|
$(NAME): $(OBJ)
|
||||||
|
@make --no-print -C lib all
|
||||||
|
$(LD) $(LDFLAGS) -o $(DIR)/$(NAME_L) $(OBJ) $(LIB)
|
||||||
|
ln -sf $(DIR)/$(NAME_L) $(DIR)/$(NAME)
|
||||||
|
|
||||||
|
$(OBJ_DIR)/%.o: %.c
|
||||||
|
@mkdir -p $(@D)
|
||||||
|
$(CC) $(CFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@rm -rf $(OBJ_DIR)
|
||||||
|
|
||||||
|
fclean: clean
|
||||||
|
@rm -f $(DIR)/$(NAME)
|
||||||
|
@rm -f $(DIR)/$(NAME_L)
|
||||||
|
|
||||||
|
re:
|
||||||
|
@make --no-print clean
|
||||||
|
@make --no-print all
|
||||||
|
|
||||||
|
.PHONY: all clean re
|
9
compile_flags.txt
Normal file
9
compile_flags.txt
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
-includelib/libft/libft.h
|
||||||
|
-includelib/ft_printf/ft_printf.h
|
||||||
|
-includeinc/malloc.h
|
||||||
|
-Wall
|
||||||
|
-Wextra
|
||||||
|
-std=c23
|
||||||
|
-iquoteinc
|
||||||
|
-iquotelib
|
||||||
|
-fPIC
|
9
inc/malloc.h
Normal file
9
inc/malloc.h
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <sys/mman.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <sys/resource.h>
|
||||||
|
|
||||||
|
void free(void *ptr);
|
||||||
|
void *malloc(size_t size);
|
||||||
|
void *realloc(void *ptr, size_t size);
|
1
lib
Submodule
1
lib
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 6daf0df08a7a66726c39e9c8939e2a677a21b617
|
4
src/free.c
Normal file
4
src/free.c
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
void
|
||||||
|
free(void *ptr) {
|
||||||
|
|
||||||
|
}
|
12
src/malloc.c
Normal file
12
src/malloc.c
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
#include "libft/libft.h"
|
||||||
|
char *memory = nullptr;
|
||||||
|
|
||||||
|
void *
|
||||||
|
malloc(size_t size) {
|
||||||
|
if (!memory)
|
||||||
|
memory = mmap(nullptr, 4096 * 10, 0, PROT_READ | PROT_WRITE, 0, 0);
|
||||||
|
|
||||||
|
for (i32 i = 0; i < ft_get_size(size); i++) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
4
src/realloc.c
Normal file
4
src/realloc.c
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
void *
|
||||||
|
realloc(void *ptr, size_t size) {
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue