mirror of
https://github.com/MoleskiCoder/EightBit.git
synced 2025-02-06 20:30:01 +00:00
Add profile guided optimisation to build configuration (profile/profiled)
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
This commit is contained in:
parent
6a065dd405
commit
033969bbe3
15
Makefile
15
Makefile
@ -1,21 +1,36 @@
|
||||
.PHONY: all
|
||||
all: opt
|
||||
|
||||
.PHONY: opt
|
||||
opt:
|
||||
$(MAKE) -C src opt
|
||||
$(MAKE) -C Z80/src opt
|
||||
$(MAKE) -C Z80/test opt
|
||||
|
||||
.PHONY: debug
|
||||
debug:
|
||||
$(MAKE) -C src debug
|
||||
$(MAKE) -C Z80/src debug
|
||||
$(MAKE) -C Z80/test debug
|
||||
|
||||
.PHONY: coverage
|
||||
coverage:
|
||||
$(MAKE) -C src coverage
|
||||
$(MAKE) -C Z80/src coverage
|
||||
$(MAKE) -C Z80/test coverage
|
||||
|
||||
.PHONY: profile
|
||||
profile:
|
||||
$(MAKE) -C src profile
|
||||
$(MAKE) -C Z80/src profile
|
||||
$(MAKE) -C Z80/test profile
|
||||
|
||||
.PHONY: profiled
|
||||
profiled:
|
||||
$(MAKE) -C src profiled
|
||||
$(MAKE) -C Z80/src profiled
|
||||
$(MAKE) -C Z80/test profiled
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
$(MAKE) -C src clean
|
||||
|
@ -4,4 +4,5 @@ CXXFLAGS = -I ../inc -I ../../inc
|
||||
|
||||
CXXFILES = Disassembler.cpp Profiler.cpp Z80.cpp
|
||||
|
||||
include ../../compile.mk
|
||||
include ../../lib_build.mk
|
||||
|
9
compile.mk
Normal file
9
compile.mk
Normal file
@ -0,0 +1,9 @@
|
||||
CXXFLAGS += -g -Wall -std=c++14 -pipe
|
||||
|
||||
#CXXFLAGS_OPT = -DNDEBUG -march=native -Ofast -flto
|
||||
CXXFLAGS_OPT = -DNDEBUG -march=native -Ofast
|
||||
CXXFLAGS_DEBUG = -D_DEBUG
|
||||
CXXFLAGS_COVERAGE = $(CXXFLAGS_DEBUG) -fprofile-arcs -ftest-coverage
|
||||
|
||||
CXXFLAGS_PROFILE = $(CXXFLAGS_OPT) -fprofile-generate
|
||||
CXXFLAGS_PROFILED = $(CXXFLAGS_OPT) -fprofile-use
|
19
exe_build.mk
19
exe_build.mk
@ -1,5 +1,3 @@
|
||||
CXXFLAGS += -g -Wall -std=c++14 -pipe
|
||||
|
||||
CXXOBJECTS = $(CXXFILES:.cpp=.o)
|
||||
|
||||
SOURCES = $(CXXFILES)
|
||||
@ -7,22 +5,25 @@ OBJECTS = $(CXXOBJECTS)
|
||||
|
||||
PCH = stdafx.h.gch
|
||||
|
||||
.PHONY: all
|
||||
all: opt
|
||||
|
||||
.PHONY: opt
|
||||
opt: CXXFLAGS += -DNDEBUG -march=native -O3 -flto
|
||||
opt: CXXFLAGS += $(CXXFLAGS_OPT)
|
||||
opt: $(EXE)
|
||||
|
||||
.PHONY: debug
|
||||
debug: CXXFLAGS += -D_DEBUG
|
||||
debug: CXXFLAGS += $(CXXFLAGS_DEBUG)
|
||||
debug: $(EXE)
|
||||
|
||||
.PHONY: coverage
|
||||
coverage: CXXFLAGS += -D_DEBUG -fprofile-arcs -ftest-coverage
|
||||
coverage: CXXFLAGS += $(CXXFLAGS_COVERAGE)
|
||||
coverage: LDFLAGS += -lgcov
|
||||
coverage: $(EXE)
|
||||
|
||||
profile: CXXFLAGS += $(CXXFLAGS_PROFILE)
|
||||
profile: LDFLAGS += -lgcov
|
||||
profile: $(EXE)
|
||||
|
||||
profiled: CXXFLAGS += $(CXXFLAGS_PROFILED)
|
||||
profiled: $(EXE)
|
||||
|
||||
$(PCH): stdafx.h
|
||||
$(CXX) $(CXXFLAGS) -x c++-header $<
|
||||
|
||||
|
18
lib_build.mk
18
lib_build.mk
@ -1,5 +1,3 @@
|
||||
CXXFLAGS += -g -Wall -std=c++14 -pipe
|
||||
|
||||
CXXOBJECTS = $(CXXFILES:.cpp=.o)
|
||||
|
||||
SOURCES = $(CXXFILES)
|
||||
@ -7,21 +5,23 @@ OBJECTS = $(CXXOBJECTS)
|
||||
|
||||
PCH = stdafx.h.gch
|
||||
|
||||
.PHONY: all
|
||||
all: opt
|
||||
|
||||
.PHONY: opt
|
||||
opt: CXXFLAGS += -DNDEBUG -march=native -O3 -flto
|
||||
opt: CXXFLAGS += $(CXXFLAGS_OPT)
|
||||
opt: $(LIB)
|
||||
|
||||
.PHONY: debug
|
||||
debug: CXXFLAGS += -D_DEBUG
|
||||
debug: CXXFLAGS += $(CXXFLAGS_DEBUG)
|
||||
debug: $(LIB)
|
||||
|
||||
.PHONY: coverage
|
||||
coverage: CXXFLAGS += -D_DEBUG -fprofile-arcs -ftest-coverage
|
||||
coverage: CXXFLAGS += $(CXXFLAGS_COVERAGE)
|
||||
coverage: $(LIB)
|
||||
|
||||
profile: CXXFLAGS += $(CXXFLAGS_PROFILE)
|
||||
profile: $(LIB)
|
||||
|
||||
profiled: CXXFLAGS += $(CXXFLAGS_PROFILED)
|
||||
profiled: $(LIB)
|
||||
|
||||
$(PCH): stdafx.h
|
||||
$(CXX) $(CXXFLAGS) -x c++-header $<
|
||||
|
||||
|
@ -4,4 +4,5 @@ CXXFLAGS = -I ../inc
|
||||
|
||||
CXXFILES = Bus.cpp EventArgs.cpp InputOutput.cpp IntelProcessor.cpp Memory.cpp Processor.cpp
|
||||
|
||||
include ../compile.mk
|
||||
include ../lib_build.mk
|
||||
|
Loading…
x
Reference in New Issue
Block a user