--- a/src_c/Makefile +++ b/src_c/Makefile @@ -106,10 +106,10 @@ -mkdir -p $@ $(BINARY): $(OBJ) - $(CC) $(LDFLAGS) $^ -o $@ + $(CC) $(CFLAGS) -fPIE $(LDFLAGS) $^ -o $@ $(BUILDDIR)/%.o: %.c - $(CC) $(CFLAGS) -D$(TARGET) -DIMB2018 -c $< -o $@ + $(CC) $(CFLAGS) -fPIC -D$(TARGET) -DIMB2018 -c $< -o $@ clean: rm -rf $(BUILDDIR) $(OBJ) $(BINARY) --- a/src_c/P2P/Makefile +++ b/src_c/P2P/Makefile @@ -50,11 +50,11 @@ TARGET=P2P BINARY:=IMB-P2P -override CFLAGS += -O3 -Wall -Wextra -pedantic -Wno-long-long +override CFLAGS += -Wall -Wextra -pedantic -Wno-long-long override LDFLAGS += -lm ifeq ($(origin CC),default) -CC=mpiicc +CC=mpicc endif all: $(BINARY) @@ -72,10 +72,10 @@ IMB_OBJ = $(IMB_SRC:.c=.o) $(BINARY): $(IMB_OBJ) - $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) + $(CC) $(CFLAGS) -fPIE -o $@ $^ $(LDFLAGS) %.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< + $(CC) $(CFLAGS) -fPIC -c -o $@ $< clean: rm -f $(IMB_OBJ) $(BINARY) --- a/src_cpp/Makefile +++ b/src_cpp/Makefile @@ -49,11 +49,7 @@ all: announce -ifdef WITH_YAML_CPP -all: libyaml-cpp.a -else all: -endif ifndef TARGET TARGET=example @@ -71,14 +67,14 @@ endif ifeq ($(origin CC),default) -CC=mpiicc +CC ?= mpicc endif ifeq ($(origin CXX),default) -CXX=mpiicpc +CXX ?= mpicxx endif override CPPFLAGS += -I. -override CFLAGS += -g -O0 -Wall -Wno-long-long -override CXXFLAGS += -g -O0 -Wall -Wextra -pedantic -Wno-long-long +override CFLAGS += -g -Wall -Wno-long-long +override CXXFLAGS += -g -Wall -Wextra -pedantic -Wno-long-long ifdef WITH_OPENMP override CFLAGS += -fopenmp override CXXFLAGS += -fopenmp @@ -103,7 +99,7 @@ all: $(BINARY) ifdef WITH_YAML_CPP -override CPPFLAGS += -Iyamlcpp/include -Iyamlcpp/test +override CPPFLAGS += -I/usr/include/yaml-cpp YAMLCPP_SRC = yamlcpp/src/aliasmanager.cpp \ yamlcpp/src/binary.cpp \ yamlcpp/src/conversion.cpp \ @@ -140,8 +136,6 @@ yamlcpp/test/old-api/parsertests.cpp \ yamlcpp/test/old-api/spectests.cpp -YAMLCPP_OBJ = $(YAMLCPP_SRC:.cpp=.o) -YAMLCPP_TEST_OBJ = $(YAMLCPP_TEST_SRC:.cpp=.o) endif IMB_SRC = imb.cpp args_parser.cpp args_parser_utests.cpp scope.cpp @@ -160,14 +154,7 @@ scope.h ifdef WITH_YAML_CPP -libyaml-cpp.a: $(YAMLCPP_OBJ) - ar qc $@ $^ - ranlib $@ - -yamltest: $(YAMLCPP_TEST_OBJ) libyaml-cpp.a - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ - -YAML_CPP_LIB = libyaml-cpp.a +YAML_CPP_LIB = -lyaml-cpp YAML_TEST = yamltest override CPPFLAGS += -DWITH_YAML_CPP endif @@ -176,25 +163,21 @@ @if test "$(ANNOUNCE)" -eq "1"; then echo "NOTE: Building target: $(TARGET), binary name: $(BINARY)"; fi @if test "$(ANNOUNCE)" -eq "1"; then echo "NOTE: Use make TARGET= to select a target suite"; fi -$(BINARY): $(IMB_OBJ) $(BECHMARK_SUITE_OBJ) $(ADDITIONAL_OBJ) $(YAML_CPP_LIB) - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) +$(BINARY): $(IMB_OBJ) $(BECHMARK_SUITE_OBJ) $(ADDITIONAL_OBJ) + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIE -o $@ $^ $(LDFLAGS) $(YAML_CPP_LIB) %.o: %.cpp - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -c -o $@ $< %.o: %.c - $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< + $(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -c -o $@ $< clean: announce - rm -f $(IMB_OBJ) $(YAMLCPP_OBJ) $(BECHMARK_SUITE_OBJ) $(ADDITIONAL_OBJ) $(BINARY) $(YAML_CPP_LIB) $(YAML_TEST) + rm -f $(IMB_OBJ) $(YAMLCPP_OBJ) $(BECHMARK_SUITE_OBJ) $(ADDITIONAL_OBJ) $(BINARY) $(BECHMARK_SUITE_OBJ): $(HEADERS) Makefile $(IMB_OBJ): $(HEADERS) Makefile -ifdef WITH_YAML_CPP -$(YAMLCPP_OBJ): Makefile -endif - .PHONY: announce clean all