Commit e6b87c56 authored by jselbie's avatar jselbie

Profile guided optimization build option

parent ce436fb4
...@@ -23,6 +23,12 @@ debug: all ...@@ -23,6 +23,12 @@ debug: all
profile: T := profile profile: T := profile
profile: all profile: all
pgo1: T := pgo1
pgo1: all
pgo2: T := pgo2
pgo2: all
clean: T := clean clean: T := clean
clean: everything clean: everything
rm -f stunserver stunclient stuntestcode rm -f stunserver stunclient stuntestcode
......
...@@ -15,6 +15,7 @@ clean: ...@@ -15,6 +15,7 @@ clean:
rm -f $(PROJECT_OBJS) $(PROJECT_TARGET) rm -f $(PROJECT_OBJS) $(PROJECT_TARGET)
$(PROJECT_TARGET): $(PROJECT_OBJS) $(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 ...@@ -8,11 +8,13 @@ DEFINES := -DNDEBUG
STANDARD_FLAGS := -Wall -Wuninitialized STANDARD_FLAGS := -Wall -Wuninitialized
RELEASE_FLAGS := -O2 RELEASE_FLAGS := -O3
DEBUG_FLAGS := -g DEBUG_FLAGS := -g
PROFILE_FLAGS := -O2 -g PROFILE_FLAGS := -O3 -g
FLAVOR_FLAGS = $(RELEASE_FLAGS) FLAVOR_FLAGS = $(RELEASE_FLAGS)
CRYPTO_LIBS := -lcrypto CRYPTO_LIBS := -lcrypto
PGO1_FLAGS := -fprofile-generate -fprofile-dir=/home/jselbie/profile
PGO2_FLAGS := -fprofile-use -fprofile-dir=/home/jselbie/profile
#SOLARIS HACK #SOLARIS HACK
...@@ -54,3 +56,13 @@ profile: FLAVOR_FLAGS = $(PROFILE_FLAGS) ...@@ -54,3 +56,13 @@ profile: FLAVOR_FLAGS = $(PROFILE_FLAGS)
profile: all 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: ...@@ -14,6 +14,6 @@ clean:
rm -f $(PROJECT_OBJS) $(PROJECT_TARGET) rm -f $(PROJECT_OBJS) $(PROJECT_TARGET)
$(PROJECT_TARGET): $(PROJECT_OBJS) $(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: ...@@ -14,7 +14,5 @@ clean:
rm -f $(PROJECT_OBJS) $(PROJECT_TARGET) rm -f $(PROJECT_OBJS) $(PROJECT_TARGET)
$(PROJECT_TARGET): $(PROJECT_OBJS) $(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