Files
ctensor/Makefile

47 lines
1.0 KiB
Makefile
Raw Normal View History

2023-05-07 16:59:12 +02:00
CC = cc
CC_FLAGS = -Wall -Wextra -pedantic -Ofast
LD_FLAGS = #-pthread
2023-03-15 16:15:50 +01:00
2023-05-07 16:59:12 +02:00
TARGET = .target
DIR_TESTS = tests
2023-03-15 16:15:50 +01:00
2023-05-07 16:59:12 +02:00
FILES = $(addprefix $(TARGET)/build/, $(shell ls ./*.c | sed 's/\.c/\.o/g'))
FILES_TEST = $(shell find $(DIR_TESTS) -name '*.c' | sed 's/\.c/\.o/g' | sed 's/$(DIR_TESTS)/$(TARGET)\/build\/$(DIR_TESTS)/g')
2023-03-15 16:15:50 +01:00
2023-05-07 16:59:12 +02:00
test: $(TARGET)/test
cd $(TARGET)/ && ./test
2023-03-15 16:15:50 +01:00
2023-05-07 16:59:12 +02:00
build: $(TARGET)/ctensor.o
2023-03-15 16:15:50 +01:00
2023-05-07 16:59:12 +02:00
$(TARGET)/test: $(FILES_TEST) $(TARGET)/ctensor.o
$(CC) $(LD_FLAGS) $^ -o $@
2023-03-15 16:15:50 +01:00
2023-05-07 16:59:12 +02:00
$(TARGET)/ctensor.o: $(FILES)
ld $(LD_FLAGS) -r $^ -o $@
2023-03-15 16:15:50 +01:00
2023-05-07 16:59:12 +02:00
# --- Source ---
$(TARGET)/build:
mkdir -p $@
$(TARGET)/build/%.o: %.c %.h | $(TARGET)/build
$(CC) $(CC_FLAGS) -c $< -o $@
# --- Tests ---
OBJ_DIR_TESTS = $(TARGET)/build/$(DIR_TESTS)
$(OBJ_DIR_TESTS):
mkdir -p $@
$(OBJ_DIR_TESTS)/main.o: $(DIR_TESTS)/main.c | $(OBJ_DIR_TESTS)
$(CC) $(CC_FLAGS) -c $< -o $@
$(OBJ_DIR_TESTS)/test_tensor.o: $(DIR_TESTS)/test_tensor.c $(DIR_TESTS)/test_tensor.h | $(OBJ_DIR_TESTS)
$(CC) $(CC_FLAGS) -c $< -o $@
# --- Utils ---
2023-03-15 16:15:50 +01:00
clean:
2023-05-07 16:59:12 +02:00
rm -rf $(TARGET)