aboutsummaryrefslogtreecommitdiffstats
path: root/makefile
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2017-02-07 17:35:07 +0000
committerYann Herklotz <ymherklotz@gmail.com>2017-02-07 17:35:07 +0000
commit767d142553f18f34c2e11284b2924a93c1f16bbe (patch)
tree64464e634978c78e5e53381a14663fbda0cd5a4d /makefile
parente5200ef5bfd80e3a961fc314260ba98a6835ad76 (diff)
downloadCompiler-767d142553f18f34c2e11284b2924a93c1f16bbe.tar.gz
Compiler-767d142553f18f34c2e11284b2924a93c1f16bbe.zip
Finished make file
Diffstat (limited to 'makefile')
-rw-r--r--makefile35
1 files changed, 19 insertions, 16 deletions
diff --git a/makefile b/makefile
index 68abc28..d3324ff 100644
--- a/makefile
+++ b/makefile
@@ -4,28 +4,31 @@ CC := g++ # this is the main compiler
CFLAGS := -g -Wall -Wextra -Wpedantic -std=c++14
LEXINC := -Ic_lexer/include
-LEXSRCDIR := c_lexer/src
LEXBUILDDIR := c_lexer/build
-LEXTARGETDIR := bin
-LEXTARGET := c_lexer
-
-LEXSRC := $(shell find $(LEXSRCDIR) -type f -name "*.cpp")
-LEXOBJ := $(patsubst $(LEXSRCDIR)/%,$(LEXBUILDDIR)/%,$(LEXSRC:.cpp=.o))
-
-$(LEXTARGETDIR)/$(LEXTARGET) : $(LEXOBJ)
- @echo " Linking..."
- @mkdir -p $(LEXTARGETDIR)
- @echo " $(CC) $^ -o $(LEXTARGETDIR)/$(LEXTARGET)"; $(CC) $^ -o $(LEXTARGETDIR)/$(LEXTARGET)
+LEXSRCDIR := c_lexer/src
-$(LEXSRCDIR)/$(LEXTARGET).yy.cpp : $(LEXSRCDIR)/$(LEXTARGET).flex
- @echo " flex -o $@ $<"; flex -o $@ $<
+# Make the c_lexer
+bin/c_lexer : $(LEXBUILDDIR)/main.o $(LEXBUILDDIR)/c_lexer.o $(LEXBUILDDIR)/c_lexer.yy.o
+ @echo "Linking..."
+ @echo " mkdir -p bin"; mkdir -p bin
+ @echo " $(CC) $^ -o bin/c_lexer"; $(CC) $^ -o bin/c_lexer
$(LEXBUILDDIR)/%.o : $(LEXSRCDIR)/%.cpp
- @mkdir -p $(LEXBUILDDIR)
+ @echo "Building sources..."
+ @echo " mkdir -p $(LEXBUILDDIR)"; mkdir -p $(LEXBUILDDIR)
@echo " $(CC) $(CFLAGS) $(LEXINC) -c -o $@ $<"; $(CC) $(CFLAGS) $(LEXINC) -c -o $@ $<
+$(LEXBUILDDIR)/%.yy.o : $(LEXSRCDIR)/%.yy.cpp
+ @echo "Building lex..."
+ @echo " mkdir -p $(LEXBUILDDIR)"; mkdir -p $(LEXBUILDDIR)
+ @echo " $(CC) $(CFLAGS) $(LEXINC) -c -o $@ $<"; $(CC) $(CFLAGS) $(LEXINC) -c -o $@ $<
+
+$(LEXSRCDIR)/%.yy.cpp : $(LEXSRCDIR)/%.flex
+ @echo "Creating flex"
+ @echo " flex -o $@ $<"; flex -o $@ $<
+
clean:
- @echo " Cleaning..."
- @echo " $(RM) -r $(LEXBUILDDIR) $(LEXTARGETDIR) $(LEXSRCDIR)/$(LEXTARGET).yy.cpp"; $(RM) -r $(LEXBUILDDIR) $(LEXTARGETDIR) $(LEXSRCDIR)/$(LEXTARGET).yy.cpp
+ @echo "Cleaning..."
+ @echo " rm -r $(LEXBUILDDIR) $(LEXTARGETDIR) $(LEXSRCDIR)/$(LEXTARGET).yy.cpp"; rm -r $(LEXBUILDDIR) bin $(LEXSRCDIR)/c_lexer.yy.cpp
.PHONY: clean