Commit e6b87c56 authored by jselbie's avatar jselbie

Profile guided optimization build option

parent ce436fb4
......@@ -23,6 +23,12 @@ debug: all
profile: T := profile
profile: all
pgo1: T := pgo1
pgo1: all
pgo2: T := pgo2
pgo2: all
clean: T := clean
clean: everything
rm -f stunserver stunclient stuntestcode
......
......@@ -15,6 +15,7 @@ clean:
rm -f $(PROJECT_OBJS) $(PROJECT_TARGET)
$(PROJECT_TARGET): $(PROJECT_OBJS)
$(LINK.cpp) -o $@ $^ $(LIB_PATH) $(LIBS) $(SOCKET_LIBS) $(CRYPTO_LIBS) $(ASLR_FLAGS)
$(LINK.cpp) -o $@ $^ $(LIB_PATH) $(LIBS) $(SOCKET_LIBS) $(CRYPTO_LIBS) $(ASLR_FLAGS) $(PGO_LINK_FLAGS)
......@@ -8,11 +8,13 @@ DEFINES := -DNDEBUG
STANDARD_FLAGS := -Wall -Wuninitialized
RELEASE_FLAGS := -O2
RELEASE_FLAGS := -O3
DEBUG_FLAGS := -g
PROFILE_FLAGS := -O2 -g
PROFILE_FLAGS := -O3 -g
FLAVOR_FLAGS = $(RELEASE_FLAGS)
CRYPTO_LIBS := -lcrypto
PGO1_FLAGS := -fprofile-generate -fprofile-dir=/home/jselbie/profile
PGO2_FLAGS := -fprofile-use -fprofile-dir=/home/jselbie/profile
#SOLARIS HACK
......@@ -54,3 +56,13 @@ profile: FLAVOR_FLAGS = $(PROFILE_FLAGS)
profile: all
pgo1: FLAVOR_FLAGS = $(PGO1_FLAGS) $(RELEASE_FLAGS)
pgo1: PGO_LINK_FLAGS = $(PGO1_FLAGS)
pgo1: all
pgo2: FLAVOR_FLAGS = $(PGO2_FLAGS) $(RELEASE_FLAGS)
pgo2: PGO_LINK_FLAGS = $(PGO2_FLAGS)
pgo2: all
......@@ -14,6 +14,6 @@ clean:
rm -f $(PROJECT_OBJS) $(PROJECT_TARGET)
$(PROJECT_TARGET): $(PROJECT_OBJS)
$(LINK.cpp) -o $@ $^ $(LIB_PATH) $(LIBS) $(SOCKET_LIBS) $(CRYPTO_LIBS) $(ASLR_FLAGS)
$(LINK.cpp) -o $@ $^ $(LIB_PATH) $(LIBS) $(SOCKET_LIBS) $(CRYPTO_LIBS) $(ASLR_FLAGS) $(PGO_LINK_FLAGS)
......@@ -14,7 +14,5 @@ clean:
rm -f $(PROJECT_OBJS) $(PROJECT_TARGET)
$(PROJECT_TARGET): $(PROJECT_OBJS)
$(LINK.cpp) -o $@ $^ $(LIB_PATH) $(LIBS) $(SOCKET_LIBS) $(CRYPTO_LIBS) $(ASLR_FLAGS)
$(LINK.cpp) -o $@ $^ $(LIB_PATH) $(LIBS) $(SOCKET_LIBS) $(CRYPTO_LIBS) $(ASLR_FLAGS) $(PGO_LINK_FLAGS)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment