--- /dev/null
+
+# Simulate a stack pop on DIRNAME, D and CURDIR
+#
+# Restores variables to parents values
+#
+# Requires a stackpush to have been called in this directory
+
+CURDIR := ${CURDIR_$D}
+DIRNAME := ${DIRNAME_$D}
+D := ${D_$D}
+
--- /dev/null
+
+# Simulate a stack push on DIRNAME, D and CURDIR
+#
+# Updates variables without destroying parents values
+#
+# Requires T_DIRNAME to be set when included
+
+T := $D_TEMP
+ DIRNAME_$T := ${DIRNAME}
+ D_$T := $D
+
+ DIRNAME := ${T_DIRNAME}
+ D := $D_${DIRNAME}
+
+ DIRNAME_$D := ${DIRNAME_$T}
+ D_$D := ${D_$T}
+
+ DIRNAME_$T :=
+ D_$T :=
+T :=
+
+CURDIR_$D := ${CURDIR}
+CURDIR := ${CURDIR_$D}${DIRNAME}/
+
################################################################################
-# save
-T := $D_TEMP
- DIRNAME_$T := ${DIRNAME}
- D_$T := $D
-
- DIRNAME := ${T_DIRNAME}
- D := $D_${DIRNAME}
-
- DIRNAME_$D := ${DIRNAME_$T}
- D_$D := ${D_$T}
-
- DIRNAME_$T :=
- D_$T :=
-T :=
-
+include Makefile.d/stackpush.mk
T_DIRNAME :=
-CURDIR_$D := ${CURDIR}
-CURDIR := ${CURDIR_$D}${DIRNAME}/
-
include ${CURDIR}${G_FILESMK}
include $(addsuffix ${G_DIRMK},${NEWDIRS})
-# restore
-
-CURDIR := ${CURDIR_$D}
-DIRNAME := ${DIRNAME_$D}
-D := ${D_$D}
+include Makefile.d/stackpop.mk
################################################################################
-# save
-T := $D_TEMP
- DIRNAME_$T := ${DIRNAME}
- D_$T := $D
-
- DIRNAME := ${T_DIRNAME}
- D := $D_${DIRNAME}
-
- DIRNAME_$D := ${DIRNAME_$T}
- D_$D := ${D_$T}
-
- DIRNAME_$T :=
- D_$T :=
-T :=
-
+include Makefile.d/stackpush.mk
T_DIRNAME :=
-CURDIR_$D := ${CURDIR}
-CURDIR := ${CURDIR_$D}${DIRNAME}/
-
include ${CURDIR}${G_FILESMK}
include $(addsuffix ${G_DIRMK},${NEWDIRS})
-# restore
-
-CURDIR := ${CURDIR_$D}
-DIRNAME := ${DIRNAME_$D}
-D := ${D_$D}
+include Makefile.d/stackpop.mk
################################################################################
-# save
-T := $D_TEMP
- DIRNAME_$T := ${DIRNAME}
- D_$T := $D
-
- DIRNAME := ${T_DIRNAME}
- D := $D_${DIRNAME}
-
- DIRNAME_$D := ${DIRNAME_$T}
- D_$D := ${D_$T}
-
- DIRNAME_$T :=
- D_$T :=
-T :=
-
+include Makefile.d/stackpush.mk
T_DIRNAME :=
-CURDIR_$D := ${CURDIR}
-CURDIR := ${CURDIR_$D}${DIRNAME}/
-
include ${CURDIR}${G_VARSMK}
include ${CURDIR}${G_RULESMK}
-# restore
-
-CURDIR := ${CURDIR_$D}
-DIRNAME := ${DIRNAME_$D}
-D := ${D_$D}
+include Makefile.d/stackpop.mk
################################################################################
-# save
-T := $D_TEMP
- DIRNAME_$T := ${DIRNAME}
- D_$T := $D
-
- DIRNAME := ${T_DIRNAME}
- D := $D_${DIRNAME}
-
- DIRNAME_$D := ${DIRNAME_$T}
- D_$D := ${D_$T}
-
- DIRNAME_$T :=
- D_$T :=
-T :=
-
+include Makefile.d/stackpush.mk
T_DIRNAME :=
-CURDIR_$D := ${CURDIR}
-CURDIR := ${CURDIR_$D}${DIRNAME}/
-
include ${CURDIR}${G_FILESMK}
include $(addsuffix ${G_DIRMK},${NEWDIRS})
-# restore
-
-CURDIR := ${CURDIR_$D}
-DIRNAME := ${DIRNAME_$D}
-D := ${D_$D}
+include Makefile.d/stackpop.mk
################################################################################
-# save
-T := $D_TEMP
- DIRNAME_$T := ${DIRNAME}
- D_$T := $D
-
- DIRNAME := ${T_DIRNAME}
- D := $D_${DIRNAME}
-
- DIRNAME_$D := ${DIRNAME_$T}
- D_$D := ${D_$T}
-
- DIRNAME_$T :=
- D_$T :=
-T :=
-
+include Makefile.d/stackpush.mk
T_DIRNAME :=
-CURDIR_$D := ${CURDIR}
-CURDIR := ${CURDIR_$D}${DIRNAME}/
-
include ${CURDIR}${G_VARSMK}
include ${CURDIR}${G_RULESMK}
-# restore
-
-CURDIR := ${CURDIR_$D}
-DIRNAME := ${DIRNAME_$D}
-D := ${D_$D}
+include Makefile.d/stackpop.mk