# general FOLDER:=$(notdir $(shell pwd)) CXX=g++ LD=g++ DEP=g++ WL_RP=-Wl,-rpath= PWD=`pwd` # files SOURCES=$(wildcard src/*.cpp) SOURCES:=$(filter-out $(wildcard src/*_moc.cpp),${SOURCES}) OBJS=$(patsubst src/%.cpp,obj/%.o,${SOURCES}) ifeq "${OBJS}" "" LIB_EMPTY_INDICATOR="(empty)" endif APP_SOURCES=$(wildcard app/*.cpp) APPS_NO_PATH=$(patsubst app/%.cpp,%,${APP_SOURCES}) APPS=$(patsubst app/%.cpp,bin/%,${APP_SOURCES}) DEP_FILES:=$(patsubst src/%.cpp,obj/%.src.dep,${SOURCES}) APP_DEP_FILES:=$(patsubst app/%.cpp,obj/%.app.dep,${APP_SOURCES}) DEP_FILES:=${DEP_FILES} ${APP_DEP_FILES} TEST=./test/runner TEST_SOURCES=$(wildcard test/*.cpp) # avoid single space in dep-files string! ifeq "${DEP_FILES}" " " DEP_FILES= endif all: # include custom makefile -include Makefile.custom LIB=${PROJECT_NAME} LIB_FILE=lib${LIB}.so LIB_LNK=-Llib -l${LIB} PC=$(patsubst %,%.pc,${LIB}) # basic flags CXXFLAGS:=${CXXFLAGS} -Isrc -Iapp -fPIC -Wall #CXXCPP= #LDFLAGS= # extract quit flag ifeq "${QUIET}" "TRUE" AT=@ else AT= endif ifeq "${COLORED}" "TRUE" FBLA='\033[30m' FRED='\033[31m' FGRE='\033[32m' FYEL='\033[33m' FBLU='\033[34m' FPUR='\033[35m' FCYA='\033[36m' BBLA='\033[40m' BRED='\033[41m' BGRE='\033[42m' BYEL='\033[43m' BBLU='\033[44m' BPUR='\033[45m' BCYA='\033[46m' BBLI='\033[5m' INV='\033[7m' DEF='\033[0m' endif # other helpers LIB_INSTALL_PREFIX=${INSTALL_PREFIX}/lib INC_INSTALL_PREFIX=${INSTALL_PREFIX}/include/${PROJECT_NAME} DOC_INSTALL_PREFIX=${INSTALL_PREFIX}/doc/${PROJECT_NAME} BIN_INSTALL_PREFIX=${INSTALL_PREFIX}/bin/${PROJECT_NAME} ETC_INSTALL_PREFIX=${INSTALL_PREFIX}/etc/${PROJECT_NAME} REL_BIN_INSTALL_PREFIX=bin/${PROJECT_NAME} APPS_INSTALLED=$(patsubst app/%.cpp,${BIN_INSTALL_PREFIX}/%,${APP_SOURCES}) REL_INC_INSTALL_PREFIX=$(patsubst ${INSTALL_PREFIX}/%,%,${INC_INSTALL_PREFIX}) ECHO_TEST_RESULT=$(shell echo -e test > .testfile && cat .testfile && rm .testfile) ifeq "${ECHO_TEST_RESULT}" "test" ECHO=@echo -e ECHO_NO_AT=echo -e else ECHO=@echo ECHO_NO_AT=echo endif INSTALL=${AT}install FOUND_EXPLICIT_INCLUDE_DIR=$(wildcard src/${PROJECT_NAME})) # save flags from Makefile.custom LDFLAGS_PC:=${LDFLAGS} -L${LIB_INSTALL_PREFIX} -l${LIB} -Wl,-rpath=${LIB_INSTALL_PREFIX} CXXFLAGS_PC:=$(filter-out -Isrc -Iapp -fPIC -Wall,${CXXFLAGS}) ifeq "${FOUND_EXPLICIT_INCLUDE_DIR}" "src/${PROJECT_NAME}" INC_INSTALL_PREFIX_PC=${INC_INSTALL_PREFIX} REL_INC_INSTALL_PREFIX_PC=include/${PROJECT_NAME} else INC_INSTALL_PREFIX_PC=${INSTALL_PREFIX}/include REL_INC_INSTALL_PREFIX_PC=include endif CXXCPP_PC:=${CXXCPP} -I${INC_INSTALL_PREFIX_PC} # parsing pkg-config files ifneq "${PC_DEPS}" "" PKG_CONFIG_PATH:=${INSTALL_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH} CXXFLAGS:=${CXXFLAGS} $(shell PKG_CONFIG_PATH=${PKG_CONFIG_PATH} pkg-config --cflags-only-I ${PC_DEPS}) CXXCPP:=${CXXCPP} $(shell PKG_CONFIG_PATH=${PKG_CONFIG_PATH} pkg-config --cflags-only-other ${PC_DEPS}) #LDFLAGS:=$(shell pkg-config --libs-only-L ${PC_DEPS}) ${LDFLAGS} LDFLAGS:=${LDFLAGS} $(patsubst -L%,${WL_RP}%,$(shell PKG_CONFIG_PATH=${PKG_CONFIG_PATH} pkg-config --libs-only-L ${PC_DEPS})) LDFLAGS:=${LDFLAGS} $(shell PKG_CONFIG_PATH=${PKG_CONFIG_PATH} pkg-config --libs ${PC_DEPS}) endif LIB_LNK_INSTALL:=${LIB_LNK} -Wl,-rpath=${LIB_INSTALL_PREFIX} LIB_LNK_LOCAL:=${LIB_LNK} -Wl,-rpath=${PWD}/lib # checking for debug flag ifeq "${DEBUG}" "TRUE" CXXFLAGS:=${CXXFLAGS} -g -O0 DEBUG_INDICATOR=${FRED}"(debug)"${DEF} else CXXFLAGS:=${CXXFLAGS} -O4 -march=native -mtune=native -funroll-loops DEBUG_INDICATOR=${FRED}"(release)"${DEF} endif # check for moc headers and search for moc command ifneq "${MOC_HEADERS}" "" MOC_OBJS=$(patsubst %.h,obj/%_moc.o,${MOC_HEADERS}) MOC_SOURCES=$(patsubst %.h,src/%_moc.cpp,${MOC_HEADERS}) MOC=$(shell pkg-config --variable=moc_location QtCore) OBJS:=${MOC_OBJS} ${OBJS} endif ifeq "${SHOW_PROGRESS}" "TRUE" ifndef PROGRESS # works for up to 400 targets twenty := x x x x x x x x x x x x x x x x x x x x MAX := $(foreach x,$(twenty),$(twenty)) # T estimates how many targets we are building by replacing BUILD with a special string T := $(shell $(MAKE) NO_RECURSION=TRUE -nrRf $(firstword $(MAKEFILE_LIST)) $(MAKECMDGOALS) \ PROGRESS="@echo COUNTTHIS > /dev/null" | grep -c "echo COUNTTHIS > /dev/null") # N is the number of pending targets in base 1, well in fact, base x :-) N := $(wordlist 1,$T,$(MAX)) # auto-decrementing counter that returns the number of pending targets in base 10 counter = $(words $N)$(eval N := $(wordlist 2,$(words $N),$N)) # BUILD is now defined to show the progress, this also avoids redefining T in loop PROGRESS = ${INV}'['`echo "100-100*(${counter}-1)/(${T}+1)" | bc -l | cut -d '.' -f 1 | sed "s|^[0-9][0-9]$$|_&|g" | sed "s|^[0-9]$$|__&|g"`'%]'${DEF} FIRST_RUN=FALSE endif endif DIRS=lib obj bin src app app/obj # actually we want to build doc/documentation .PHONY: doc ${PC} test all: ${DIRS} ${MOC_SOURCES} lib/${LIB_FILE} ${APPS} ${PKG_CFG} custom-build-hook ${DIRS}: ${ECHO} ${PROGRESS} ${BYEL}[mkdir]${DEF} creating directory $@ ${AT}mkdir $@ test: test/runner ./test/runner test/runner: test/runner.cpp lib/${LIB_FILE} ${TEST_SOURCES} ${ECHO} ${PROGRESS} ${BGRE}[tst]${DEF} building test ${AT}${CXX} ./test/*.cpp ${CXXFLAGS} ${CXXCPP} ${LIB_LNK_LOCAL} ${LDFLAGS} -o $@ -lgtest -L${HOME}/local/lib -lpthread -I${HOME}/local/include test/runner.cpp: ${ECHO} ${PROGRESS} ${BGRE}[tst]${DEF} generating main test code file ${AT}echo "#include " > ./test/runner.cpp ${AT}echo "int main(int argc, char **argv) {" >> ./test/runner.cpp ${AT}echo " ::testing::InitGoogleTest(&argc, argv);" >> ./test/runner.cpp ${AT}echo " return RUN_ALL_TESTS();" >> ./test/runner.cpp ${AT}echo "}" >> ./test/runner.cpp # overwrite build rules with these from dependency file # if obj/dependencies is not found a submake is spawned # to create it (make rock's) ifeq "${FIRST_RUN}" "FALSE" ifneq "${MAKECMDGOALS}" "cleaner" -include obj/dependencies endif endif ifneq "${SHOW_PROGRESS}" "TRUE" -include obj/dependencies endif custom-install-hook :: ${ECHO} ${PROGRESS} ${FCYA}${BBLA}[install]${DEF} custom install custom-build-hook :: ${ECHO} ${PROGRESS} ${FCYA}${BBLA}[build]${DEF} custom build custom-clean-hook :: ${ECHO} ${PROGRESS} ${FCYA}${BBLA}[clean]${DEF} custom clean obj/dependencies: ${DIRS} ${RECURSIVE_ICL_PROJECTS} ${DEP_FILES} Makefile.custom ${AT}if [ "${DEP_FILES}" != "" ] ; then cat ${DEP_FILES} > $@ ; else touch $@ ; fi src/%_moc.cpp: src/%.h Makefile.custom ${ECHO} ${PROGRESS} ${BBLU}[moc]${DEF} $@ ${AT}${MOC} $< -o $@ obj/%_moc.o: src/%_moc.cpp Makefile.custom ${ECHO} ${PROGRESS} ${BCYA}[obj]${DEF} $@ ${DEBUG_INDICATOR} ${AT}${CXX} -c ${CXXFLAGS} ${CXXCPP} $< -o $@ obj/%.o: src/%.cpp Makefile.custom ${ECHO} ${PROGRESS} ${BCYA}[obj]${DEF} $@ ${DEBUG_INDICATOR} ${AT}${CXX} -c ${CXXFLAGS} ${CXXCPP} $< -o $@ app/obj/%.o: app/%.cpp lib/${LIB_FILE} Makefile.custom ${ECHO} ${PROGRESS} ${BGRE}[obj]${DEF} $@ ${AT}${CXX} -c ${CXXFLAGS} ${CXXCPP} $< -o $@ bin/%: app/obj/%.o Makefile.custom ${ECHO} ${PROGRESS} ${FBLA}${BGRE}[app]${DEF} $@ ${AT}${CXX} $< ${CXXFLAGS} ${CXXCPP} ${LIB_LNK_LOCAL} ${LDFLAGS} -o $@ lib/${LIB_FILE}: ${OBJS} Makefile.custom ${ECHO} ${PROGRESS} ${BRED}[lib]${DEF} $@ ${FRED}${LIB_EMPTY_INDICATOR}${DEF} ${AT}${LD} -shared ${OBJS} ${LDFLAGS} -o $@ obj/%.src.dep: src/%.cpp Makefile.custom ${ECHO} ${PROGRESS} ${BPUR}[dep]${DEF} $@ ${AT}${DEP} ${CXXFLAGS} ${CXXCPP} -MT `echo $< | sed "s|src/|obj/|g" | sed "s|.cpp|.o|g"` $< -MM -o ${@}_tmp && mv ${@}_tmp $@ obj/%.app.dep: app/%.cpp Makefile.custom ${ECHO} ${PROGRESS} ${BPUR}[dep]${DEF} $@ ${AT}${DEP} ${CXXFLAGS} ${CXXCPP} -MT `echo $< | sed "s|^app|app/obj|g" | sed "s|.cpp|.o|g"` $< -MM -o ${@}_tmp && mv ${@}_tmp $@ doc: ${AT}(cd doc && doxygen 2>&1 | while read LINE ; do ${ECHO_NO_AT} ${BPUR}[doxygen]${DEF} $${LINE} ; done) clean: custom-clean-hook ${ECHO} ${PROGRESS} ${FBLA}${BYEL}[delete]${DEF} objects ${AT}rm -rf obj/*.o app/obj/*.o ${ECHO} ${PROGRESS} ${FBLA}${BYEL}[delete]${DEF} moc files ${AT}rm -rf ${MOC_SOURCES} ${ECHO} ${PROGRESS} ${FBLA}${BYEL}[delete]${DEF} apps ${AT}rm -rf ${APPS} ${ECHO} ${PROGRESS} ${FBLA}${BYEL}[delete]${DEF} ${LIB_FILE} ${AT}rm -rf lib/${LIB_FILE} ${ECHO} ${PROGRESS} ${FBLA}${BYEL}[delete]${DEF} ${PC} ${AT}rm -rf ${PC} ${ECHO} ${PROGRESS} ${FBLA}${BYEL}[delete]${DEF} ${TEST} ${AT}rm -rf ${TEST} cleaner: clean ${ECHO} ${PROGRESS} ${FBLA}${BYEL}[delete]${DEF} temporary files ${AT}rm -rf *~ src/*~ app/*~ ${ECHO} ${PROGRESS} ${FBLA}${BYEL}[delete]${DEF} dependency files ${AT}rm -rf obj/*.dep obj/dependencies ${ECHO} ${PROGRESS} ${FBLA}${BYEL}[delete]${DEF} documentation ${AT}rm -rf doc/documentation ${PC}: ${ECHO} ${PROGRESS} ${BYEL}[create]${DEF} $@ ${AT}rm -rf $@ ${ECHO} prefix=${INSTALL_PREFIX} >> $@ ${ECHO} exec_prefix=$$\{prefix\} >> $@ ${ECHO} bindir=$$\{prefix\}/${REL_BIN_INSTALL_PREFIX} >> $@ ${ECHO} libdir=$$\{prefix\}/lib >> $@ ${ECHO} datadir$$\{prefix\}/data >> $@ ${ECHO} includedir=$$\{prefix\}/${REL_INC_INSTALL_PREFIX_PC} >> $@ ${ECHO} installation=${MAKECMDGOALS} >> $@ ${ECHO} package=${LIB} >> $@ ${ECHO} >> $@ ${ECHO} Name: ${LIB} >> $@ ${ECHO} Description: ${PACKAGE_DESCRIPTION} >> $@ ${ECHO} Version: ${VERSION} >> $@ ${ECHO} >> $@ ${ECHO} Requires: ${PC_DEPS} >> $@ ${ECHO} >> $@ ${ECHO} Libs: ${LDFLAGS_PC} >> $@ ${ECHO} >> $@ ${ECHO} Cflags: ${CXXFLAGS_PC} ${CXXCPP_PC} >> $@ create-install-dirs: ${AT}for D in ${INSTALL_PREFIX} \ ${INC_INSTALL_PREFIX} \ ${DOC_INSTALL_PREFIX} \ ${ETC_INSTALL_PREFIX} \ ${LIB_INSTALL_PREFIX}/pkgconfig \ ${BIN_INSTALL_PREFIX} \ ${INSTALL_PREFIX}/doc \ ${INSTALL_PREFIX}/doc/html ; do \ if [ ! -d $$D ] ; then \ mkdir -m 775 -p $$D ; \ fi ; \ done installlink: all ${PC} uninstall create-install-dirs custom-install-hook ${AT}for T in `find src/ -name *.h` ; do \ ${ECHO_NO_AT} ${PROGRESS} ${BBLU}[link]${DEF} $$T ; \ rm -rf ${INC_INSTALL_PREFIX}/$$T ; \ ln -s ${PWD}/$$T ${INC_INSTALL_PREFIX}/ ; \ done ${AT}for T in ${APPS} ; do \ ${ECHO_NO_AT} ${PROGRESS} ${BBLU}[link]${DEF} $$T ; \ rm -rf ${BIN_INSTALL_PREFIX}/$$T ; \ ln -s ${PWD}/$$T ${BIN_INSTALL_PREFIX} ; \ done ${AT}for T in ${EXTRA_INSTALL_TO_BIN} ; do \ ${ECHO_NO_AT} ${PROGRESS} ${BBLU}[extra link]${DEF} $$T ; \ rm -rf ${BIN_INSTALL_PREFIX}/$$T ;\ ln -s ${PWD}/$$T ${BIN_INSTALL_PREFIX} ; \ done ${ECHO} ${PROGRESS} ${BBLU}[link]${DEF} ${LIB_FILE} ${AT}rm -rf ${LIB_INSTALL_PREFIX}/${LIB_FILE} ${AT}ln -s ${PWD}/lib/${LIB_FILE} ${LIB_INSTALL_PREFIX} ${ECHO} ${PROGRESS} ${BBLU}[link]${DEF} ${PC} ${AT}rm -rf ${LIB_INSTALL_PREFIX}/pkgconfig/${PC} ${AT}ln -s ${PWD}/${PC} ${LIB_INSTALL_PREFIX}/pkgconfig/ ${AT}if [ -d doc/documentation ] ; then \ ${ECHO_NO_AT} ${PROGRESS} ${BBLU}[link]${DEF} documentation ; \ for T in doc/documentation/html/* ; do \ rm -rf ${DOC_INSTALL_PREFIX}/$$T ; \ ln -s ${PWD}/$$T ${DOC_INSTALL_PREFIX}/ ; \ done ; \ else \ ${ECHO_NO_AT} ${PROGRESS} ${BBLU}[skip]${DEF} documentation ; \ fi ${AT}for T in ${EXTRA_INSTALL_TO_ETC} ; do \ ${ECHO_NO_AT} ${PROGRESS} ${BBLU}[extra link]${DEF} $$T ; \ rm -rf ${ETC_INSTALL_PREFIX}/$$T ; \ ln -s ${PWD}/$$T ${ETC_INSTALL_PREFIX} ; \ done ${BIN_INSTALL_PREFIX}/%: app/obj/%.o ${AT}rm -rf $@ ${ECHO} ${PROGRESS} ${BYEL}[install/relink]${DEF} $@ ${AT}${CXX} $< ${CXXFLAGS} ${CXXCPP} ${LIB_LNK_INSTALL} ${LDFLAGS} -o $@ ${AT}chmod 775 $@ install: all ${PC} create-install-dirs custom-install-hook ${APPS_INSTALLED} ${AT}for T in ${APPS_INSTALLED} ; do \ if [ -L $$T ] ; then \ echo "${BRED}[warning]${DEF} target $$T is a symbolic link" ; \ echo "${BRED}[warning]${DEF} (forcing relink) this does only happen when you" ; \ echo "${BRED}[warning]${DEF} switch from 'make installlink' to 'make install'" ; \ rm -rf $$T ; \ make $$T ; \ fi \ done ${AT}for T in `find src/ -name *.h` ; do \ ${ECHO_NO_AT} ${PROGRESS} ${BYEL}[install]${DEF} $$T ; \ rm -rf ${INC_INSTALL_PREFIX}/$$T ; \ install -D -p -m 664 ${PWD}/$$T ${INC_INSTALL_PREFIX}/ ; \ done ${AT}for T in ${EXTRA_INSTALL_TO_BIN} ; do \ ${ECHO_NO_AT} ${PROGRESS} ${FBLA}${BRED}[extra bin]${DEF} $$T ; \ rm -rf ${INC_INSTALL_PREFIX}/$$T ; \ cp $$T ${BIN_INSTALL_PREFIX}/ ; \ chmod 775 ${BIN_INSTALL_PREFIX}/$$T ; \ done ${ECHO} ${PROGRESS} ${BYEL}[install]${DEF} ${LIB_FILE} ${AT}rm -rf ${LIB_INSTALL_PREFIX}/${LIB_FILE} ${AT}install -D -p -m 664 ${PWD}/lib/${LIB_FILE} ${LIB_INSTALL_PREFIX} ${ECHO} ${PROGRESS} ${BYEL}[install]${DEF} ${PC} ${AT}rm -rf ${LIB_INSTALL_PREFIX}/pkgconfig/${PC} ${AT}install -D -p -m 664 ${PWD}/${PC} ${LIB_INSTALL_PREFIX}/pkgconfig/ ${AT}if [ -d doc/documentation ] ; then \ ${ECHO_NO_AT} ${PROGRESS} ${BYEL}[install]${DEF} documentation ; \ for T in doc/documentation/html/* ; do \ rm -rf ${DOC_INSTALL_PREFIX}/$$T ; \ install -D -p -m 664 ${PWD}/$$T ${DOC_INSTALL_PREFIX} ; \ done ; \ else \ ${ECHO_NO_AT} ${PROGRESS} ${BYEL}[skip]${DEF} documentation ; \ fi ${AT}for T in ${EXTRA_INSTALL_TO_ETC} ; do \ ${ECHO_NO_AT} ${PROGRESS} ${FBLA}${BRED}[extra etc]${DEF} $$T ; \ rm -rf ${ETC_INSTALL_PREFIX}/$$T ; \ install -p -m 664 $$T ${ETC_INSTALL_PREFIX}/ ; \ done uninstall: ${ECHO} ${PROGRESS} ${BRED}[uninstall]${DEF} ${PFX} ${AT}rm -rf ${INC_INSTALL_PREFIX} ${AT}rm -rf ${BIN_INSTALL_PREFIX} ${AT}rm -rf ${ETC_INSTALL_PREFIX} ${AT}rm -rf ${LIB_INSTALL_PREFIX}/${LIB_FILE} ${AT}rm -rf ${LIB_INSTALL_PREFIX}/pkgconfig/${PC} ${AT}rm -rf ${DOC_INSTALL_PREFIX} $(call NOTIFY_PACKAGE,IPP, ) $(call NOTIFY_PACKAGE,QT, ) $(call NOTIFY_PACKAGE,LIBDC, ) $(call NOTIFY_PACKAGE,UNICAP, ) $(call NOTIFY_PACKAGE,LIBZ, ) $(call NOTIFY_PACKAGE,LIBJPEG, ) $(call NOTIFY_PACKAGE,SVS, ) $(call NOTIFY_PACKAGE,IMAGEMAGICK, ) $(call NOTIFY_PACKAGE,XCF, ) info: ${ECHO} ${FPUR}${BBLA}[info]${DEF} "+----------------------------------------------" ${ECHO} ${FPUR}${BBLA}[info]${DEF} "| "${BRED}${BBLI}ICL-Configuration${DEF} ${ECHO} ${FPUR}${BBLA}[info]${DEF} "+----------------------------------------------" ${ECHO} ${FPUR}${BBLA}[info]${DEF} "| "${BRED}ICL${DEF}" " `pkg-config --variable=prefix icl` ${ECHO} ${FPUR}${BBLA}[info]${DEF} "+----------------------------------------------" ${ECHO} ${FPUR}${BBLA}[info]${DEF} "| IPP " `pkg-config --variable=IPP_ROOT icl` ${ECHO} ${FPUR}${BBLA}[info]${DEF} "| QT " `pkg-config --variable=QT_ROOT icl` ${ECHO} ${FPUR}${BBLA}[info]${DEF} "| LIBDC " `pkg-config --variable=LIBDC_ROOT icl` ${ECHO} ${FPUR}${BBLA}[info]${DEF} "| UNICAP " `pkg-config --variable=UNICAP_ROOT icl` ${ECHO} ${FPUR}${BBLA}[info]${DEF} "| LIBZ " `pkg-config --variable=LIBZ_ROOT icl` ${ECHO} ${FPUR}${BBLA}[info]${DEF} "| LIBJPEG " `pkg-config --variable=LIBJPEG_ROOT icl` ${ECHO} ${FPUR}${BBLA}[info]${DEF} "| SVS " `pkg-config --variable=SVS_ROOT icl` ${ECHO} ${FPUR}${BBLA}[info]${DEF} "| IMAGEMAGICK " `pkg-config --variable=IMAGEMAGICK_ROOT icl` ${ECHO} ${FPUR}${BBLA}[info]${DEF} "| XCF " `pkg-config --variable=XCF_ROOT icl` ${ECHO} ${FPUR}${BBLA}[info]${DEF} "+----------------------------------------------" ${ECHO} ${FPUR}${BBLA}[info]${DEF} "| Flags" ${ECHO} ${FPUR}${BBLA}[info]${DEF} "+----------------------------------------------" ${ECHO} ${FPUR}${BBLA}[info]${DEF} "| "${BRED}DEBUG${DEF}" " ${DEBUG} ${ECHO} ${FPUR}${BBLA}[info]${DEF} "| "${BRED}LDFLAGS${DEF}" " ${LDFLAGS} ${ECHO} ${FPUR}${BBLA}[info]${DEF} "| "${BRED}CXXFLAGS${DEF}" " ${CXXFLAGS} ${ECHO} ${FPUR}${BBLA}[info]${DEF} "| "${BRED}CXXCPP${DEF}" " ${CXXCPP} ${ECHO} ${FPUR}${BBLA}[info]${DEF} "+----------------------------------------------" update-from-svn: ${ECHO} ${PROGRESS} ${BRED}[svn-update]${DEF} updating Makefile from svn at https://opensource.cit-ec.de/ ${AT}svn export https://opensource.cit-ec.de/svn/icl/trunk/scripts/icl-create-project-data/Makefile.template > /dev/null ${ECHO} ${PROGRESS} ${BRED}[svn-update]${DEF} creating backup Makefile.old ${AT}cp Makefile Makefile.old ${AT}mv Makefile.template Makefile ${ECHO} ${PROGRESS} ${BRED}[svn-update]${DEF} updating Makefile.custom from svn at https://opensource.cit-ec.de/ ${AT}svn export https://opensource.cit-ec.de/svn/icl/trunk/scripts/icl-create-project-data/Makefile.custom.template > /dev/null ${ECHO} ${PROGRESS} ${BRED}[svn-update]${DEF} creating backup Makefile.custom.old ${AT}cp Makefile.custom Makefile.custom.old ${AT}mv Makefile.custom.template Makefile.custom ${ECHO} ${PROGRESS} ${BGRE}[note:]${DEF} please transfer your custom changes from Makefile.custom.old to the new Makefile.custom