mirror of
https://github.com/Hizenberg469/Makefile-tutorial.git
synced 2026-04-19 22:02:24 +03:00
New Makefile
This commit is contained in:
37
AWK.txt
Normal file
37
AWK.txt
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
AWK
|
||||||
|
|
||||||
|
* searches files for lines that contain certain pattern
|
||||||
|
* performs operation described in AWK body on line with certain
|
||||||
|
pattern.
|
||||||
|
* performs operation described in AWK body on choosen line
|
||||||
|
|
||||||
|
|
||||||
|
* Basic structure
|
||||||
|
|
||||||
|
awk 'program_you_will_write' input-file1 input-file2
|
||||||
|
|
||||||
|
awk 'BEGIN{
|
||||||
|
code_in_BEGIN_section
|
||||||
|
}
|
||||||
|
|
||||||
|
{ code_in_main_body_section }
|
||||||
|
|
||||||
|
END{
|
||||||
|
code_in_END_section
|
||||||
|
}' input-file1 input-file2
|
||||||
|
|
||||||
|
* AWK Commands
|
||||||
|
|
||||||
|
* In AWK body bash features doesn't work
|
||||||
|
* Completely new language in AWK body
|
||||||
|
* print
|
||||||
|
* if-else
|
||||||
|
* for loop
|
||||||
|
* ...
|
||||||
|
|
||||||
|
* Completely new features we can call on specific line (specific text)
|
||||||
|
* NF (number of fields)
|
||||||
|
* NR (number of records)
|
||||||
|
* RS (records separator)
|
||||||
|
* $1,$2,.. (specific fields)
|
||||||
|
* ...
|
||||||
57
Makefile1
Normal file
57
Makefile1
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
SOLUTION_BINARY = solution
|
||||||
|
BRUTEFORCE_BINARY = $(notdir Stress_Testing/bruteForce)
|
||||||
|
GENERATOR_BINARY = $(notdir Stress_Testing/generator)
|
||||||
|
CODEDIRS = . ./Stress_Testing
|
||||||
|
INCDIRS = .
|
||||||
|
|
||||||
|
BUILD_DIR = build
|
||||||
|
OBJS_DIR = $(BUILD_DIR)/objs
|
||||||
|
|
||||||
|
CXX = g++
|
||||||
|
DEPFLAGS = -MP -MMD
|
||||||
|
CXXFLAGS = -Wall -Wextra -g \
|
||||||
|
$(foreach D,$(INCDIRS), -I$(D)) \
|
||||||
|
$(DEPFLAGS)
|
||||||
|
|
||||||
|
CXXFILES = $(foreach D, \
|
||||||
|
$(CODEDIRS), \
|
||||||
|
$(wildcard $(D)/*.cpp))
|
||||||
|
|
||||||
|
OBJECTS = $(patsubst %.cpp, $(OBJS_DIR)/%.o, $(notdir $(CXXFILES)))
|
||||||
|
DEPFILES = $(patsubst %.cpp, $(OBJS_DIR)/%.d, $(notdir $(CXXFILES)))
|
||||||
|
|
||||||
|
all: $(BUILD_DIR)/$(SOLUTION_BINARY) \
|
||||||
|
$(BUILD_DIR)/$(GENERATOR_BINARY) \
|
||||||
|
$(BUILD_DIR)/$(BRUTEFORCE_BINARY)
|
||||||
|
|
||||||
|
$(BUILD_DIR)/$(SOLUTION_BINARY): $(OBJS_DIR)/$(SOLUTION_BINARY).o
|
||||||
|
$(CXX) -o $@ $<
|
||||||
|
|
||||||
|
$(BUILD_DIR)/$(GENERATOR_BINARY): $(OBJS_DIR)/$(GENERATOR_BINARY).o
|
||||||
|
$(CXX) -o $@ $<
|
||||||
|
|
||||||
|
$(BUILD_DIR)/$(BRUTEFORCE_BINARY): $(OBJS_DIR)/$(BRUTEFORCE_BINARY).o
|
||||||
|
$(CXX) -o $@ $<
|
||||||
|
|
||||||
|
|
||||||
|
$(OBJS_DIR)/%.o: %.cpp
|
||||||
|
$(CXX) $(CXXFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
|
$(OBJS_DIR)/%.o: Stress_Testing/%.cpp
|
||||||
|
$(CXX) $(CXXFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf $(BUILD_DIR)/$(SOLUTION_BINARY) \
|
||||||
|
$(BUILD_DIR)/$(BRUTEFORCE_BINARY) \
|
||||||
|
$(BUILD_DIR)/$(GENERATOR_BINARY) \
|
||||||
|
$(OBJECTS) \
|
||||||
|
$(DEPFILES)
|
||||||
|
|
||||||
|
help:
|
||||||
|
@echo "make clean: To remove executable, objects and dependency files."
|
||||||
|
@echo "make $(SOLUTION_BINARY): To build $(SOLUTION_BINARY) only."
|
||||||
|
@echo "make all: To build for Stress_Testing."
|
||||||
|
|
||||||
|
-include $(DEPFILES)
|
||||||
|
|
||||||
|
.PHONY: clean help all
|
||||||
Reference in New Issue
Block a user