aboutsummaryrefslogtreecommitdiffstats
path: root/makefile
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2017-02-07 16:56:57 +0000
committerYann Herklotz <ymherklotz@gmail.com>2017-02-07 16:56:57 +0000
commit76699050049febe4c7eb0199cd0ae9d13fb36b74 (patch)
tree612fd98f279355c529390f0c7f431ebd1f0dbc27 /makefile
parent9d94e43d23698f4804060c82482966da9680faa1 (diff)
downloadCompiler-76699050049febe4c7eb0199cd0ae9d13fb36b74.tar.gz
Compiler-76699050049febe4c7eb0199cd0ae9d13fb36b74.zip
Changing file structure
Diffstat (limited to 'makefile')
-rw-r--r--makefile36
1 files changed, 18 insertions, 18 deletions
diff --git a/makefile b/makefile
index 3ecd3ec..68abc28 100644
--- a/makefile
+++ b/makefile
@@ -1,31 +1,31 @@
CC := g++ # this is the main compiler
-# CC := clange --analyze # and comment out the linker last line
+# CC := clang --analyze # and comment out the linker last line
CFLAGS := -g -Wall -Wextra -Wpedantic -std=c++14
-INC := -Iinclude
-bin/c_lexer: build/main.o build/c_lexer.o build/c_lexer.yy.o
- @echo " Linking..."
- @mkdir -p bin
- @echo " $(CC) $^ -o bin/c_lexer"; $(CC) $^ -o bin/c_lexer
+LEXINC := -Ic_lexer/include
+LEXSRCDIR := c_lexer/src
+LEXBUILDDIR := c_lexer/build
+LEXTARGETDIR := bin
+LEXTARGET := c_lexer
-build/c_lexer.yy.o: src/c_lexer.yy.cpp
- @mkdir -p build
- @echo " $(CC) $(CFLAGS) $(INC) -c -o $@ $<"; $(CC) $(CFLAGS) $(INC) -c -o $@ $<
+LEXSRC := $(shell find $(LEXSRCDIR) -type f -name "*.cpp")
+LEXOBJ := $(patsubst $(LEXSRCDIR)/%,$(LEXBUILDDIR)/%,$(LEXSRC:.cpp=.o))
-build/main.o: src/main.cpp
- @mkdir -p build
- @echo " $(CC) $(CFLAGS) $(INC) -c -o $@ $<"; $(CC) $(CFLAGS) $(INC) -c -o $@ $<
+$(LEXTARGETDIR)/$(LEXTARGET) : $(LEXOBJ)
+ @echo " Linking..."
+ @mkdir -p $(LEXTARGETDIR)
+ @echo " $(CC) $^ -o $(LEXTARGETDIR)/$(LEXTARGET)"; $(CC) $^ -o $(LEXTARGETDIR)/$(LEXTARGET)
-build/c_lexer.o: src/c_lexer.cpp
- @mkdir -p build
- @echo " $(CC) $(CFLAGS) $(INC) -c -o $@ $<"; $(CC) $(CFLAGS) $(INC) -c -o $@ $<
+$(LEXSRCDIR)/$(LEXTARGET).yy.cpp : $(LEXSRCDIR)/$(LEXTARGET).flex
+ @echo " flex -o $@ $<"; flex -o $@ $<
-src/c_lexer.yy.cpp: src/c_lexer.flex
- @echo " flex -o $@ $<"; flex -o $@ $<
+$(LEXBUILDDIR)/%.o : $(LEXSRCDIR)/%.cpp
+ @mkdir -p $(LEXBUILDDIR)
+ @echo " $(CC) $(CFLAGS) $(LEXINC) -c -o $@ $<"; $(CC) $(CFLAGS) $(LEXINC) -c -o $@ $<
clean:
@echo " Cleaning..."
- @echo " $(RM) -r build bin src/c_lexer.yy.cpp"; $(RM) -r build bin src/c_lexer.yy.cpp
+ @echo " $(RM) -r $(LEXBUILDDIR) $(LEXTARGETDIR) $(LEXSRCDIR)/$(LEXTARGET).yy.cpp"; $(RM) -r $(LEXBUILDDIR) $(LEXTARGETDIR) $(LEXSRCDIR)/$(LEXTARGET).yy.cpp
.PHONY: clean