forked from msiu-prog/long_arithmetic
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
53 lines (38 loc) · 1.31 KB
/
makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# -*- mode: makefile -*-
.PHONY : makehelp compile compile-lib compile-calc compile-main test
# Компилятор для языка Си
GCC = gcc -Wall -std=c99
# Объектные файлы проекта
LIBOBJ = long_arithmetic.o
MAINOBJ = main.o
CALCOBJ = stack.o calc.o
# Тестирующий исполняемый файл
TESTER = long_arithmetic_tests.rb
# Имена выходных исполняемых бинарных файлов
OUTPUT_BIN_NAME = "longa"
CALC_BIN_NAME = "calc"
# Правило получения объектных файлов из c-файлов
.c.o:
$(GCC) -c $< -o $@
# Действие по умолчанию
default: makehelp
# Подсказка к мейкфайлу
makehelp:
@echo "makefile for long arithmetic project"
@echo "available actions:"
@echo " compile"
@echo " compile-lib"
@echo " compile-calc"
@echo " compile-main"
@echo " test"
@echo " makehelp"
# Компилирование исходников
compile: compile-lib compile-calc compile-main
compile-lib: $(LIBOBJ)
compile-calc: $(LIBOBJ) $(CALCOBJ)
$(GCC) $(LIBOBJ) $(CALCOBJ) -o $(CALC_BIN_NAME)
compile-main: $(LIBOBJ) $(MAINOBJ)
$(GCC) $(LIBOBJ) $(MAINOBJ) -o $(OUTPUT_BIN_NAME)
# Тестирование библиотеки
test: compile-calc tests/*
tests/$(TESTER)