Added automatic dependency system to Makefile.
This commit is contained in:
parent
38b9a872f1
commit
8803ac9921
4 changed files with 24 additions and 14 deletions
28
Makefile
28
Makefile
|
|
@ -1,10 +1,11 @@
|
|||
# Declaration of variables
|
||||
C = clang
|
||||
C_FLAGS = -Wall
|
||||
COMMON_FLAGS = -Wall -MMD
|
||||
C_FLAGS = $(COMMON_FLAGS)
|
||||
CC = clang++
|
||||
CC_FLAGS = -Wall -std=c++17
|
||||
LD_FLAGS =
|
||||
INCLUDES =
|
||||
CC_FLAGS = $(COMMON_FLAGS) -std=c++17
|
||||
LD_FLAGS =
|
||||
INCLUDES =
|
||||
|
||||
# File names
|
||||
EXEC = run
|
||||
|
|
@ -12,22 +13,25 @@ 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)
|
||||
|
||||
$(CC) $(COBJECTS) $(OBJECTS) -o $(EXEC) $(LD_FLAGS)
|
||||
|
||||
# To obtain object files
|
||||
%.o: %.cpp
|
||||
$(CC) $(INCLUDES) $(CC_FLAGS) -o $@ -c $<
|
||||
|
||||
|
||||
# To obtain object files
|
||||
%.o: %.c
|
||||
$(C) $(INCLUDES) $(C_FLAGS) -o $@ -c $<
|
||||
|
||||
|
||||
-include $(SOURCES:%.cpp=%.d)
|
||||
-include $(CSOURCES:%.c=%.d)
|
||||
|
||||
# To remove generated files
|
||||
clean:
|
||||
rm -f $(COBJECTS) $(OBJECTS)
|
||||
rm -f $(COBJECTS) $(OBJECTS) $(SOURCES:%.cpp=%.d) $(CSOURCES:%.c=%.d)
|
||||
|
||||
cleaner:
|
||||
rm -f $(EXEC) $(COBJECTS) $(OBJECTS)
|
||||
cleaner: clean
|
||||
rm -f $(EXEC)
|
||||
|
|
|
|||
3
main.cpp
3
main.cpp
|
|
@ -8,8 +8,7 @@ using std::endl;
|
|||
|
||||
int main()
|
||||
{
|
||||
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
1
test_c_lib.c
Normal file
1
test_c_lib.c
Normal file
|
|
@ -0,0 +1 @@
|
|||
#include "test_c_lib.h"
|
||||
6
test_c_lib.h
Normal file
6
test_c_lib.h
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#ifndef DEF_test_c_lib
|
||||
#define DEF_test_c_lib
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Reference in a new issue