2024-07-02 17:07:50 +02:00
|
|
|
UNAME_S := $(shell uname -s)
|
|
|
|
|
|
|
|
|
|
ifeq ($(UNAME_S),Linux)
|
2024-07-04 10:49:15 +02:00
|
|
|
CC=gcc
|
2024-07-02 17:07:50 +02:00
|
|
|
else ifeq ($(UNAME_S),Darwin)
|
2024-07-04 10:49:15 +02:00
|
|
|
CC=clang
|
2024-07-02 17:07:50 +02:00
|
|
|
ARCH = -arch x86_64
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
DISABLE_WARNINGS=-Wno-shift-negative-value
|
|
|
|
|
COMMON_FLAGS=$(DISABLE_WARNINGS) -g -fstack-protector-all $(ARCH) --std=c11
|
2023-09-27 03:45:58 +02:00
|
|
|
PROD_FLAGS=$(COMMON_FLAGS) -DLAMA_ENV
|
|
|
|
|
TEST_FLAGS=$(COMMON_FLAGS) -DDEBUG_VERSION
|
|
|
|
|
UNIT_TESTS_FLAGS=$(TEST_FLAGS)
|
|
|
|
|
INVARIANTS_CHECK_FLAGS=$(TEST_FLAGS) -DFULL_INVARIANT_CHECKS
|
2021-02-14 18:54:44 +03:00
|
|
|
|
2024-07-05 15:00:21 +02:00
|
|
|
all: gc.o runtime.o printf.o
|
|
|
|
|
ar rc runtime.a runtime.o gc.o printf.o
|
2023-04-26 14:22:14 +02:00
|
|
|
|
2023-03-27 10:09:54 +02:00
|
|
|
gc.o: gc.c gc.h
|
2024-07-05 15:00:21 +02:00
|
|
|
$(CC) $(PROD_FLAGS) -c gc.c -o gc.o
|
2018-11-21 14:23:35 +03:00
|
|
|
|
2021-09-28 03:02:05 +03:00
|
|
|
runtime.o: runtime.c runtime.h
|
2024-07-05 15:00:21 +02:00
|
|
|
$(CC) $(PROD_FLAGS) -c runtime.c -o runtime.o
|
2018-03-04 23:13:08 +03:00
|
|
|
|
2024-07-01 11:37:41 +02:00
|
|
|
printf.o: printf.S
|
2025-01-05 10:51:40 +01:00
|
|
|
$(CC) $(PROD_FLAGS) -Wa,--noexecstack -x assembler-with-cpp -c -g printf.S -o printf.o
|
2024-02-05 14:18:06 +01:00
|
|
|
|
2018-03-04 23:13:08 +03:00
|
|
|
clean:
|
2023-10-04 05:23:14 +02:00
|
|
|
$(RM) *.a *.o *~ negative_scenarios/*.err
|
2024-09-05 21:14:49 +03:00
|
|
|
|