# -*-mode: Makefile;-*- ;; Have EMACS always use makefile-mode for this file. # # makefile.src: build objects ../obj/*.o from sources # # Don't change anything below this line! ############################################################################### # Do not assign anything to this variable _DOT_DOT= ifeq "${_CURR_DIR}" "" _CURR_DIR=. endif PROJECT_NAME:= $(notdir $(shell cd ..;pwd)) include makeVar # Checks if the project is composed by C or C++ source files ifeq "$(wildcard *.${SOURCE_CPP_EXT})" "" _SOURCES_EXT = ${SOURCE_C_EXT} else _SOURCES_EXT = ${SOURCE_CPP_EXT} FORCE_CPP:= TRUE endif ifneq "${DEBUG_ON}" "TRUE" DEBUG:=${NODEBUG} endif __SOURCES_FILENAME = $(wildcard *.${_SOURCES_EXT}) _SOURCES_FILENAME:=$(filter-out ${SKIP_OBJECTS},${__SOURCES_FILENAME}) TARGET_OBJECTS = $(_SOURCES_FILENAME:%.${_SOURCES_EXT}=../obj/${TARGET_PREFIX}%${TARGET_POSTFIX}.o) #----------------------------------------------- # Rule: all & cleanall & clean & printtype #----------------------------------------------- all: obj cleanall: cleanobj cleandepend clean: cleanobj printtype: ${PRE_CMD}${CMD_ECHO} "Type: MakeSource" #----------------------------------------------- # Rule: obj & cleanobj #----------------------------------------------- obj: ../obj ${MAKE_PRECOND} ${TARGET_OBJECTS} ${MAKE_POSTCOND} ${PRE_CMD}${CMD_FINAL} ifeq "${FORCE_CPP}" "TRUE" ../obj/${TARGET_PREFIX}%.o: %.${_SOURCES_EXT} ${PRE_CMD}${CMD_ECHO} "Building objects from: ${_CURR_DIR}/$<" ${PRE_CMD}${CMD_CCPP} ${CPPFLAGS} ${DEBUG} ${CPPDEFINES} -c $< -o $@ \ ${REL_INCLUDES} ${ABS_INCLUDES} else ../obj/${TARGET_PREFIX}%.o: %.${_SOURCES_EXT} ${PRE_CMD}${CMD_ECHO} "Building objects from: ${_CURR_DIR}/$<" ${PRE_CMD}${CMD_CC} ${CFLAGS} ${DEBUG} ${CDEFINES} -c $< -o $@ \ ${REL_INCLUDES} ${ABS_INCLUDES} endif ../obj: ${PRE_CMD}${CMD_MKDIR} ../obj cleanobj: _cleanobj_First ${MORE_CLEAN} _cleanobj_First: ${PRE_CMD}${CMD_ECHO} "Cleaning objects from: ${_CURR_DIR}" ${PRE_CMD}${CMD_RM} ../obj/${TARGET_PREFIX}*.o ${PRE_CMD}${CMD_RM} *~ *.bak moc_* #----------------------------------------------- # Rule: depend & cleandepend #----------------------------------------------- ifeq "${FORCE_CPP}" "TRUE" depend: ${PRE_CMD}${CMD_ECHO} "Building dependencies from: ${_CURR_DIR}" ${PRE_CMD}${CMD_RM} makeDepend ${PRE_CMD}for file in ${_SOURCES_FILENAME} ; do \ echo " $$file" ; \ $(CMD_CCPP) $(CXXFLAGS) ${CPPDEFINES} ${ABS_INCLUDES} ${REL_INCLUDES} \ $$file -MT ../obj/$${file%.*}.o -MM -o .depend ; \ cat .depend >> makeDepend ; \ done ${CMD_RM} .depend else depend: ${PRE_CMD}${CMD_ECHO} "Building dependencies from: ${_CURR_DIR}" ${PRE_CMD}${CMD_RM} makeDepend ${PRE_CMD}for file in ${_SOURCES_FILENAME} ; do \ echo " $$file" ; \ $(CMD_CC) $(CFLAGS) ${CDEFINES} ${ABS_INCLUDES} ${REL_INCLUDES} \ $$file -MM -o .depend ; \ cat .depend >> makeDepend ; \ done ${PRE_CMD}${CMD_RM} .depend ${CMD_RM} .depend endif cleandepend: ${PRE_CMD}${CMD_ECHO} "Cleaning dependency from: ${_CURR_DIR}" ${PRE_CMD}${CMD_RM} makeDepend ${PRE_CMD}${CMD_FINAL} #----------------------------------------------- # Rule: % (default rule) # Note: This rule must be the last one! #----------------------------------------------- %: ;