From 0b1551edc5be9347bc9d064dcdc64e3b72298b0e Mon Sep 17 00:00:00 2001 From: Arsen Mirzaev Tatyano-Muradovich Date: Fri, 2 Jan 2026 23:20:14 +0500 Subject: [PATCH] =?UTF-8?q?=D0=B8=D0=B7=D1=83=D1=87=D0=B0=D1=8E=20`make`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitmodules | 3 ++ libraries/lwcell | 1 + makefile | 70 +++++++++++++++++++++++++++++++++++++++++++++++ source/main.c | 6 ++++ source/test | Bin 0 -> 15960 bytes 5 files changed, 80 insertions(+) create mode 100644 .gitmodules create mode 160000 libraries/lwcell create mode 100644 makefile create mode 100644 source/main.c create mode 100755 source/test diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..ba7e14f --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "libraries/lwcell"] + path = libraries/lwcell + url = https://github.com/MaJerle/lwcell diff --git a/libraries/lwcell b/libraries/lwcell new file mode 160000 index 0000000..422e7ab --- /dev/null +++ b/libraries/lwcell @@ -0,0 +1 @@ +Subproject commit 422e7ab289ab2d8cc37f93d92ee1dbaabaaf37c2 diff --git a/makefile b/makefile new file mode 100644 index 0000000..6ee432c --- /dev/null +++ b/makefile @@ -0,0 +1,70 @@ +CC = gcc +CFLAGS = -Wall -Wextra -std=c11 +LIBRARIES= -L ./libraries/lwcell/build -l lwcell.so -lm +INCLUDES = -I ./source -I ./libraries/lwcell/include + +# define variable for our dependencies' Makefiles. +# we use find to grab only the top level Makefiles and also some convenient ignores. +DEPENDENCIES = $(shell find ./deps -maxdepth 2 -name Makefile -printf '%h\n' | grep -v 'unittest' | grep -v '^.$$') + +SOURCES = $(shell find ./source -name '*.c') + +SRC = source +OBJ = objects +BIN = bin +TARGET = root + +PREFIX ?= /usr/local + +# Debug +ifeq ($(DEBUG), 1) + CFLAGS += -DDEBUG=1 -ggdb +endif + +# Release +ifeq ($(RELEASE), 1) + CFLAGS += -O2 +endif + +# Shared +ifeq ($(SHARED), 1) + SOURCES=$(shell find ./$(SRC)/libraries -name '*.c') + TARGET=my_lib +endif + +OBJECTS = $(addprefix $(OBJ)/,$(SOURCES:%.c=%.o)) + +.PHONY: all +all: dependencies source + +.PHONY: dependencies +dependencies: + git -C ./libraries/lwcell pull + +.PHONY: source +source: $(OBJECTS) + @mkdir -p $(BIN) +ifeq ($(SHARED), 1) + $(CC) -shared -fPIC -o $(BIN)/$(TARGET).so $^ $(LIBRARIES) + ar -rcs $(BIN)/$(TARGET).a $^ +else + $(CC) $(CFLAGS) $(LIBRARIES) $^ -o $(BIN)/$(TARGET) +endif + # $(CC) -o $(TARGET) $(OBJECTS) $(CFLAGS) + +$(OBJ)/%.o: %.c + @mkdir -p $(dir $@) + $(CC) -c -o $@ $< $(CFLAGS) $(INCLUDES) + +.PHONY: clean +clean: + @rm -rf $(OBJ)/* 2> /dev/null + @rm -f $(BIN)/* 2> /dev/null + +# .PHONY: install +# install: +# install $(TARGET) $(PREFIX)/bin + +# .PHONY: uninstall +# uninstall: +# @rm -f $(PREFIX)/bin/$(TARGET) 2> /dev/null diff --git a/source/main.c b/source/main.c new file mode 100644 index 0000000..4917a92 --- /dev/null +++ b/source/main.c @@ -0,0 +1,6 @@ +#include + +int main() { + printf("Hello World!\n"); + return 0; +} diff --git a/source/test b/source/test new file mode 100755 index 0000000000000000000000000000000000000000..034fec94ee906181726a12cf449ae299942a04ff GIT binary patch literal 15960 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 literal 0 HcmV?d00001