From fac0f5623675053f16dad406752eec3103abde87 Mon Sep 17 00:00:00 2001 From: Patrik Gornicz Date: Sat, 20 Jun 2009 14:13:16 -0400 Subject: [PATCH] created some cmd varibles --- Makefile | 9 +++++---- lib/rules.mk | 12 ++++-------- rules.mk | 21 +++++++++++++++++++++ tests/rules.mk | 9 +++------ tests/src/1/rules.mk | 6 ++---- tests/src/printTrace/rules.mk | 6 ++---- 6 files changed, 37 insertions(+), 26 deletions(-) create mode 100644 rules.mk diff --git a/Makefile b/Makefile index c20587b..5fa4417 100644 --- a/Makefile +++ b/Makefile @@ -10,10 +10,6 @@ BUILD := DEBUG default: -include packages.mk -include targets.mk - - G_DIRMK := dir.mk G_VARSMK := vars.mk G_FILESMK := files.mk @@ -22,6 +18,11 @@ G_LISTSMK := lists.mk G_TVARSMK := tvars.mk +include packages.mk +include targets.mk +include ${G_RULESMK} + + include ${G_VARSMK} include ${G_LISTSMK} diff --git a/lib/rules.mk b/lib/rules.mk index 4f9bffa..47656e5 100644 --- a/lib/rules.mk +++ b/lib/rules.mk @@ -22,13 +22,11 @@ ${G_DEPS_LIB}: ${L_DEPS_$P} # how to link the main target ${TARGETTMP_$P}: ${L_OBJS_$P} | $${@D} - ${Q1}${PRNTFMT} "${CXX}" "$@" - ${Q2}${CXX} ${CXXFLAGS} ${LNKFLAGS} -o $@ $^ ${LIBS} + ${cmd-link} # rule to copy tmp target to working directory ${TARGET_$P}: ${TARGETTMP_$P} | $${@D} - ${Q1}${PRNTFMT} "cp" "$@" - ${Q2}cp $< $@ + ${cmd-cp} # how to make a directory ${L_BLDDIRS_$P}: @@ -37,15 +35,13 @@ ${L_BLDDIRS_$P}: # rule to make an object file from a .cpp ${OBJSDIR_$P}%.o: ${SRCSDIR_$P}%.cpp | $${@D} - ${Q1}${PRNTFMT} "${CXX}" "$@" - ${Q2}${CXX} ${CXXFLAGS} -c -o $@ $< ${INCFLAGS} + ${cmd-cpptoobj} # rule to make a depend file from a .cpp # be clever and escape the / chars in file paths # DON'T simply use another sed delimiter or it can't appear in the file paths ${DEPSDIR_$P}%.d: ${SRCSDIR_$P}%.cpp | $${@D} - ${Q1}${PRNTFMT} "DEP" "$@" - ${Q2}${CXX} -MM ${CXXFLAGS} $< ${INCFLAGS} | sed 's/\(^.*\):/$(subst /,\/,${@:${DEPSDIR}%.d=${OBJSDIR}%.o} $@):/' > $@ + ${cmd-cpptodep} L_CLEANCMDS += cleanbin-$P diff --git a/rules.mk b/rules.mk new file mode 100644 index 0000000..2011d30 --- /dev/null +++ b/rules.mk @@ -0,0 +1,21 @@ + +define cmd-link + ${Q1}${PRNTFMT} "${CXX}" "$@" + ${Q2}${CXX} ${CXXFLAGS} ${LNKFLAGS} -o $@ $^ ${LIBS} +endef + +define cmd-cp + ${Q1}${PRNTFMT} "cp" "$@" + ${Q2}cp $< $@ +endef + +define cmd-cpptoobj + ${Q1}${PRNTFMT} "${CXX}" "$@" + ${Q2}${CXX} ${CXXFLAGS} -c -o $@ $< ${INCFLAGS} +endef + +define cmd-cpptodep + ${Q1}${PRNTFMT} "DEP" "$@" + ${Q2}${CXX} -MM ${CXXFLAGS} $< ${INCFLAGS} | sed 's/\(^.*\):/$(subst /,\/,${@:${DEPSDIR}%.d=${OBJSDIR}%.o} $@):/' > $@ +endef + diff --git a/tests/rules.mk b/tests/rules.mk index 518da1e..bf3aaa1 100644 --- a/tests/rules.mk +++ b/tests/rules.mk @@ -4,8 +4,7 @@ ${G_DEPS_TESTS}: ${L_DEPS_$P} # HACK tests/bind/libbear.so.0: lib/bind/libbear.so.0.0 | $${@D} - ${Q1}${PRNTFMT} "cp" "$@" - ${Q2}cp $< $@ + ${cmd-cp} # how to make a directory ${L_BLDDIRS_$P}: @@ -14,15 +13,13 @@ ${L_BLDDIRS_$P}: # rule to make an object file from a .cpp ${OBJSDIR_$P}%.o: ${SRCSDIR_$P}%.cpp | $${@D} - ${Q1}${PRNTFMT} "${CXX}" "$@" - ${Q2}${CXX} ${CXXFLAGS} -c -o $@ $< ${INCFLAGS} + ${cmd-cpptoobj} # rule to make a depend file from a .cpp # be clever and escape the / chars in file paths # DON'T simply use another sed delimiter or it can't appear in the file paths ${DEPSDIR_$P}%.d: ${SRCSDIR_$P}%.cpp | $${@D} - ${Q1}${PRNTFMT} "DEP" "$@" - ${Q2}${CXX} -MM ${CXXFLAGS} $< ${INCFLAGS} | sed 's/\(^.*\):/$(subst /,\/,${@:${DEPSDIR}%.d=${OBJSDIR}%.o} $@):/' > $@ + ${cmd-cpptodep} L_CLEANCMDS += cleanbin-$P diff --git a/tests/src/1/rules.mk b/tests/src/1/rules.mk index 21bf89b..130bab4 100644 --- a/tests/src/1/rules.mk +++ b/tests/src/1/rules.mk @@ -7,11 +7,9 @@ ${TARGETTMP_$D}: tests/bind/libbear.so.0 # how to link the main target ${TARGETTMP_$D}: ${L_OBJS_$D} | $${@D} - ${Q1}${PRNTFMT} "${CXX}" "$@" - ${Q2}${CXX} ${CXXFLAGS} ${LNKFLAGS} -o $@ $^ ${LIBS} + ${cmd-link} # rule to copy tmp target to working directory ${TARGET_$D}: ${TARGETTMP_$D} | $${@D} - ${Q1}${PRNTFMT} "cp" "$@" - ${Q2}cp $< $@ + ${cmd-cp} diff --git a/tests/src/printTrace/rules.mk b/tests/src/printTrace/rules.mk index 21bf89b..130bab4 100644 --- a/tests/src/printTrace/rules.mk +++ b/tests/src/printTrace/rules.mk @@ -7,11 +7,9 @@ ${TARGETTMP_$D}: tests/bind/libbear.so.0 # how to link the main target ${TARGETTMP_$D}: ${L_OBJS_$D} | $${@D} - ${Q1}${PRNTFMT} "${CXX}" "$@" - ${Q2}${CXX} ${CXXFLAGS} ${LNKFLAGS} -o $@ $^ ${LIBS} + ${cmd-link} # rule to copy tmp target to working directory ${TARGET_$D}: ${TARGETTMP_$D} | $${@D} - ${Q1}${PRNTFMT} "cp" "$@" - ${Q2}cp $< $@ + ${cmd-cp} -- 2.10.2