34 lines
630 B
Makefile
34 lines
630 B
Makefile
|
|
# Declaration of variables
|
||
|
|
C = clang
|
||
|
|
C_FLAGS = -Wall
|
||
|
|
CC = clang++
|
||
|
|
CC_FLAGS = -Wall -std=c++17
|
||
|
|
LD_FLAGS =
|
||
|
|
INCLUDES =
|
||
|
|
|
||
|
|
# File names
|
||
|
|
EXEC = run
|
||
|
|
CSOURCES = $(wildcard *.c)
|
||
|
|
COBJECTS = $(CSOURCES:.c=.o)
|
||
|
|
SOURCES = $(wildcard *.cpp)
|
||
|
|
OBJECTS = $(SOURCES:.cpp=.o)
|
||
|
|
|
||
|
|
# Main target
|
||
|
|
$(EXEC): $(COBJECTS) $(OBJECTS)
|
||
|
|
$(CC) $(LD_FLAGS) $(COBJECTS) $(OBJECTS) -o $(EXEC)
|
||
|
|
|
||
|
|
# To obtain object files
|
||
|
|
%.o: %.cpp
|
||
|
|
$(CC) $(INCLUDES) $(CC_FLAGS) -o $@ -c $<
|
||
|
|
|
||
|
|
# To obtain object files
|
||
|
|
%.o: %.c
|
||
|
|
$(C) $(INCLUDES) $(C_FLAGS) -o $@ -c $<
|
||
|
|
|
||
|
|
# To remove generated files
|
||
|
|
clean:
|
||
|
|
rm -f $(COBJECTS) $(OBJECTS)
|
||
|
|
|
||
|
|
cleaner:
|
||
|
|
rm -f $(EXEC) $(COBJECTS) $(OBJECTS)
|