Skip to content

Commit

Permalink
uHAL : Re-organise makefiles (simple cases) to make commonalities app…
Browse files Browse the repository at this point in the history
…arant; refs #47
  • Loading branch information
tswilliams committed Oct 17, 2017
1 parent 17448f6 commit ee9db69
Show file tree
Hide file tree
Showing 3 changed files with 148 additions and 77 deletions.
56 changes: 41 additions & 15 deletions uhal/grammars/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,40 +7,66 @@ Package = uhal/grammars
PackagePath = $(CACTUS_RPM_ROOT)/${Package}
PackageName = cactuscore-uhal-grammars

Packager = Andrew Rose
Packager = Andrew Rose, Tom Williams

PACKAGE_VER_MAJOR = 2
PACKAGE_VER_MINOR = 5
PACKAGE_VER_PATCH = 0
PACKAGE_RELEASE = 1

LIBRARY = lib/libcactus_uhal_grammars.so
LIBRARY = cactus_uhal_grammars

SOURCES = $(wildcard src/common/*.cpp)
OBJECT_FILES = $(patsubst src/common/%.cpp,obj/%.o,${SOURCES})

LIBRARY_PATH = -L${UHAL_LOG_LIB_PREFIX}

LIBRARIES = -lcactus_uhal_log

INCLUDE_PATH = include \
${EXTERN_BOOST_INCLUDE_PREFIX} \
${UHAL_LOG_INCLUDE_PREFIX}

LIBRARY_PATH = ${UHAL_LOG_LIB_PREFIX}

LIBRARIES = cactus_uhal_log



####################################
### COMMON DERIVED VARIABLES ###


LIBRARY := lib/lib${LIBRARY}.so

LIBRARY_SOURCES = $(wildcard src/common/*.cpp)
LIBRARY_OBJECT_FILES = $(patsubst src/common/%.cpp,obj/%.o,${LIBRARY_SOURCES})

EXECUTABLE_SOURCES = $(wildcard src/common/*.cxx)
EXECUTABLE_OBJECT_FILES = $(patsubst src/common/%.cxx,obj/%.o,${EXECUTABLE_SOURCES})
EXECUTABLES = $(patsubst src/common/%.cxx,bin/%.exe,${EXECUTABLE_SOURCES})

INCLUDE_PATH := $(addprefix -I,$(INCLUDE_PATH))
LIBRARY_PATH := $(addprefix -L,$(LIBRARY_PATH))
LIBRARIES := $(addprefix -l,$(LIBRARIES))

CPP_FLAGS = -g -O3 -Wall -pedantic -MMD -MP -fPIC \
#-fprofile-arcs -ftest-coverage
CPP_FLAGS = -g -Wall -pedantic -O3 -MMD -MP -fPIC \
# -fprofile-arcs -ftest-coverage
LINK_LIBRARY_FLAGS = -shared -fPIC -Wall -g -O3 \
# -lgcov -coverage
LINK_EXECUTABLE_FLAGS = -Wall -g -O3 \
# -lgcov -coverage

RPMBUILD_DIR = ${PackagePath}/RPMBUILD


#######################################
### PACKAGE-SPECIFIC EXTENSIONS ###

LINK_FLAGS = -g -shared -fPIC -Wall -O3\
#-lgcov -coverage

# Hide c++11-extensions warning when building on osx
ifeq ($(CACTUS_OS),osx)
CPP_FLAGS += -Wno-c++11-extensions
endif


RPMBUILD_DIR = ${PackagePath}/RPMBUILD
########################
### COMMON RULES ###


.PHONY: all _all clean _cleanall build _buildall install _installall rpm _rpmall test _testall spec_update

Expand All @@ -58,9 +84,9 @@ buildall: _all
_all: ${LIBRARY}

${LIBRARY}: ${OBJECT_FILES}
g++ ${LINK_FLAGS} ${LIBRARY_PATH} ${LIBRARIES} ${OBJECT_FILES} -o $@
g++ ${LINK_LIBRARY_FLAGS} ${LIBRARY_PATH} ${LIBRARIES} ${OBJECT_FILES} -o $@

${OBJECT_FILES}: obj/%.o : src/common/%.cpp ${INCLUDES}
${LIBRARY_OBJECT_FILES}: obj/%.o : src/common/%.cpp ${INCLUDES}
mkdir -p {lib,obj}
g++ ${INCLUDE_PATH} -c $< ${CPP_FLAGS} -o $@

Expand Down
88 changes: 53 additions & 35 deletions uhal/tests/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,72 +7,90 @@ Package = uhal/tests
PackagePath = $(CACTUS_RPM_ROOT)/${Package}
PackageName = cactuscore-uhal-tests

Packager = Andrew Rose, Marc Magrans de Arbil
Packager = Andrew Rose, Marc Magrans de Arbil, Tom Williams

PACKAGE_VER_MAJOR = 2
PACKAGE_VER_MINOR = 5
PACKAGE_VER_PATCH = 1
PACKAGE_RELEASE = 1

LIBRARY = lib/libcactus_uhal_tests.so
LIBRARY_SOURCES = $(wildcard src/common/*.cpp)
LIBRARY_OBJECT_FILES = $(patsubst src/common/%.cpp,obj/%.o,${LIBRARY_SOURCES})
LIBRARY = cactus_uhal_tests

EXECUTABLE_SOURCES = $(wildcard src/common/*.cxx)
EXECUTABLE_OBJECT_FILES = $(patsubst src/common/%.cxx,obj/%.o,${EXECUTABLE_SOURCES})
EXECUTABLES = $(patsubst src/common/%.cxx,bin/%.exe,${EXECUTABLE_SOURCES})

INCLUDE_PATH = include \
${UHAL_LOG_INCLUDE_PREFIX} \
${UHAL_GRAMMARS_INCLUDE_PREFIX} \
${EXTERN_BOOST_INCLUDE_PREFIX} \
${EXTERN_PUGIXML_INCLUDE_PREFIX} \
${UHAL_UHAL_INCLUDE_PREFIX}

LIBRARY_PATH = ${EXTERN_BOOST_LIB_PREFIX} \
${EXTERN_PUGIXML_LIB_PREFIX} \
${UHAL_LOG_LIB_PREFIX} \
${UHAL_GRAMMARS_LIB_PREFIX} \
${UHAL_UHAL_LIB_PREFIX} \
lib
LIBRARY_PATH := $(addprefix -L,$(LIBRARY_PATH))

LIBRARIES = \
-lcactus_uhal_uhal \
-lcactus_uhal_grammars \
-lcactus_uhal_log \
-l${PUGIXML_LIB_NAME} \
LIBRARIES = \
cactus_uhal_uhal \
cactus_uhal_grammars \
cactus_uhal_log \
${PUGIXML_LIB_NAME} \
\
-lboost_thread \
-lboost_filesystem \
-lboost_regex \
-lboost_system \
-lboost_thread \
-lboost_program_options \
-lboost_unit_test_framework \
boost_thread \
boost_filesystem \
boost_regex \
boost_system \
boost_thread \
boost_program_options \
boost_unit_test_framework \
\
-lpthread \

pthread \

EXECUTABLE_LIBRARIES = -lcactus_uhal_tests ${LIBRARIES}

INCLUDE_PATH = include \
${UHAL_LOG_INCLUDE_PREFIX} \
${UHAL_GRAMMARS_INCLUDE_PREFIX} \
${EXTERN_BOOST_INCLUDE_PREFIX} \
${EXTERN_PUGIXML_INCLUDE_PREFIX} \
${UHAL_UHAL_INCLUDE_PREFIX}


####################################
### COMMON DERIVED VARIABLES ###


LIBRARY := lib/lib${LIBRARY}.so

LIBRARY_SOURCES = $(wildcard src/common/*.cpp)
LIBRARY_OBJECT_FILES = $(patsubst src/common/%.cpp,obj/%.o,${LIBRARY_SOURCES})

EXECUTABLE_SOURCES = $(wildcard src/common/*.cxx)
EXECUTABLE_OBJECT_FILES = $(patsubst src/common/%.cxx,obj/%.o,${EXECUTABLE_SOURCES})
EXECUTABLES = $(patsubst src/common/%.cxx,bin/%.exe,${EXECUTABLE_SOURCES})

INCLUDE_PATH := $(addprefix -I,$(INCLUDE_PATH))
LIBRARY_PATH := $(addprefix -L,$(LIBRARY_PATH))
LIBRARIES := $(addprefix -l,$(LIBRARIES))

CPP_FLAGS = -g -Wall -pedantic -O3 -MMD -MP -fPIC \
# -fprofile-arcs -ftest-coverage
LINK_LIBRARY_FLAGS = -shared -g -Wall -O3 -fPIC \
# -lgcov -coverage
LINK_EXECUTABLE_FLAGS = -g -Wall -O3 \
# -lgcov -coverage

RPMBUILD_DIR = ${PackagePath}/RPMBUILD


#######################################
### PACKAGE-SPECIFIC EXTENSIONS ###


# Hide c++11-extensions warning when building on osx
ifeq ($(CACTUS_OS),osx)
CPP_FLAGS += -Wno-c++11-extensions
endif

LINK_LIBRARY_FLAGS = -shared -fPIC -Wall -g -O3 ${LIBRARY_PATH} ${LIBRARIES}\
# -lgcov -coverage

LINK_EXECUTABLE_FLAGS = -Wall -g -O3 ${LIBRARY_PATH} ${EXECUTABLE_LIBRARIES} \
# -lgcov -coverage
########################
### COMMON RULES ###

RPMBUILD_DIR = ${PackagePath}/RPMBUILD

.PHONY: all _all clean _cleanall build _buildall install _installall rpm _rpmall test _testall spec_update

Expand All @@ -92,7 +110,7 @@ _all: ${LIBRARY} ${EXECUTABLES}


${EXECUTABLES}: bin/%.exe: obj/%.o ${EXECUTABLE_OBJECT_FILES}
g++ $< ${LINK_EXECUTABLE_FLAGS} -o $@
g++ ${LINK_EXECUTABLE_FLAGS} $< ${LIBRARY_PATH} ${EXECUTABLE_LIBRARIES} -o $@

${EXECUTABLE_OBJECT_FILES}: obj/%.o : src/common/%.cxx
mkdir -p {bin,obj,lib}
Expand All @@ -101,7 +119,7 @@ ${EXECUTABLE_OBJECT_FILES}: obj/%.o : src/common/%.cxx
-include $(EXECUTABLE_OBJECT_FILES:.o=.d)

${LIBRARY}: ${LIBRARY_OBJECT_FILES}
g++ ${LINK_LIBRARY_FLAGS} ${LIBRARY_OBJECT_FILES} -o $@
g++ ${LINK_LIBRARY_FLAGS} ${LIBRARY_PATH} ${LIBRARIES} ${LIBRARY_OBJECT_FILES} -o $@

${LIBRARY_OBJECT_FILES}: obj/%.o : src/common/%.cpp
mkdir -p {bin,obj,lib}
Expand Down
81 changes: 54 additions & 27 deletions uhal/uhal/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,48 +7,75 @@ Package = uhal/uhal
PackagePath = $(CACTUS_RPM_ROOT)/${Package}
PackageName = cactuscore-uhal-uhal

Packager = Andrew Rose
Packager = Andrew Rose, Tom Williams

PACKAGE_VER_MAJOR = 2
PACKAGE_VER_MINOR = 5
PACKAGE_VER_PATCH = 1
PACKAGE_RELEASE = 1

LIBRARY = lib/libcactus_uhal_uhal.so
LIBRARY = cactus_uhal_uhal

SOURCES = $(wildcard src/common/*.cpp)
OBJECT_FILES = $(patsubst src/common/%.cpp,obj/%.o,${SOURCES})

INCLUDE_PATH = include \
${UHAL_GRAMMARS_INCLUDE_PREFIX} \
${UHAL_LOG_INCLUDE_PREFIX} \
${EXTERN_BOOST_INCLUDE_PREFIX} \
${EXTERN_PUGIXML_INCLUDE_PREFIX}

LIBRARY_PATH = ${EXTERN_BOOST_LIB_PREFIX} \
${EXTERN_PUGIXML_LIB_PREFIX} \
${UHAL_GRAMMARS_LIB_PREFIX} \
${UHAL_LOG_LIB_PREFIX}
LIBRARY_PATH := $(addprefix -L,$(LIBRARY_PATH))

LIBRARIES = -lpthread \
LIBRARIES = pthread \
\
-l${PUGIXML_LIB_NAME} \
${PUGIXML_LIB_NAME} \
\
-lboost_thread \
-lboost_system \
-lboost_filesystem \
-lboost_regex \
-lboost_thread \
boost_thread \
boost_system \
boost_filesystem \
boost_regex \
boost_thread \
\
-lcactus_uhal_grammars \
-lcactus_uhal_log
cactus_uhal_grammars \
cactus_uhal_log




####################################
### COMMON DERIVED VARIABLES ###


LIBRARY := lib/lib${LIBRARY}.so

LIBRARY_SOURCES = $(wildcard src/common/*.cpp)
LIBRARY_OBJECT_FILES = $(patsubst src/common/%.cpp,obj/%.o,${LIBRARY_SOURCES})

EXECUTABLE_SOURCES = $(wildcard src/common/*.cxx)
EXECUTABLE_OBJECT_FILES = $(patsubst src/common/%.cxx,obj/%.o,${EXECUTABLE_SOURCES})
EXECUTABLES = $(patsubst src/common/%.cxx,bin/%.exe,${EXECUTABLE_SOURCES})

INCLUDE_PATH = include \
${UHAL_GRAMMARS_INCLUDE_PREFIX} \
${UHAL_LOG_INCLUDE_PREFIX} \
${EXTERN_BOOST_INCLUDE_PREFIX} \
${EXTERN_PUGIXML_INCLUDE_PREFIX}
INCLUDE_PATH := $(addprefix -I,$(INCLUDE_PATH))
LIBRARY_PATH := $(addprefix -L,$(LIBRARY_PATH))
LIBRARIES := $(addprefix -l,$(LIBRARIES))

CPP_FLAGS = -g -Wall -pedantic -O3 -MMD -MP -fPIC \
# -fprofile-arcs -ftest-coverage
LINK_LIBRARY_FLAGS = -shared -fPIC -Wall -g -O3 \
# -lgcov -coverage
LINK_EXECUTABLE_FLAGS = -Wall -g -O3 \
# -lgcov -coverage

CPP_FLAGS = -g -O3 -Wall -pedantic -MMD -MP -fPIC\
-DDISABLE_PACKET_COUNTER_HACK\
-DRUN_ASIO_MULTITHREADED # \
# -fprofile-arcs -ftest-coverage
RPMBUILD_DIR = ${PackagePath}/RPMBUILD


#######################################
### PACKAGE-SPECIFIC EXTENSIONS ###

CPP_FLAGS += -DDISABLE_PACKET_COUNTER_HACK\
-DRUN_ASIO_MULTITHREADED # \
# -DNO_PREEMPTIVE_DISPATCH

#CPP_FLAGS += -fdelayed-template-parsing
Expand All @@ -62,10 +89,10 @@ ifeq ($(CACTUS_OS),osx)
CPP_FLAGS += -Wno-c++11-extensions -fdelayed-template-parsing
endif

LINK_FLAGS = -g -shared -fPIC -Wall -O3 ${LIBRARY_PATH} ${LIBRARIES}\
# -lgcov -coverage

RPMBUILD_DIR = ${PackagePath}/RPMBUILD
########################
### COMMON RULES ###


.PHONY: all _all clean _cleanall build _buildall install _installall rpm _rpmall test _testall

Expand All @@ -83,7 +110,7 @@ _all: ${LIBRARY}


${LIBRARY}: ${OBJECT_FILES}
g++ ${LINK_FLAGS} ${OBJECT_FILES} -o $@
g++ ${LINK_LIBRARY_FLAGS} ${LIBRARY_PATH} ${LIBRARIES} ${OBJECT_FILES} -o $@

${OBJECT_FILES}: obj/%.o : src/common/%.cpp
mkdir -p {lib,obj}
Expand Down

0 comments on commit ee9db69

Please sign in to comment.