tags 507231 patch
thanks
Hi,
Upstream has a few bugs in their make dependencies (see fix_upstream_deps.diff)
Also, the debian makefiles have the same problem spread all over; the following
check:
test -d somedir || mkdir somedir
is not reentrant. Directory names are shared a lot between rules, so they will
collide sometimes. This is fixed by adding -p (see debian_reentrancy.diff).
Manoj, since this looks like a makefile framework that could be being used in
other packages, it'd be nice if you'd also apply the same fix to those.
Thanks!
--
Robert Millan
The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and
how) you may access your data; but nobody's threatening your freedom: we
still allow you to remove your data and not access it at all."
diff -ur -x Makefile.in flex-2.5.35/tests/test-bison-nr/Makefile.am flex-2.5.35.new/tests/test-bison-nr/Makefile.am
--- flex-2.5.35/tests/test-bison-nr/Makefile.am 2006-11-09 21:14:46.000000000 +0100
+++ flex-2.5.35.new/tests/test-bison-nr/Makefile.am 2008-11-29 21:23:48.000000000 +0100
@@ -34,7 +34,7 @@
testname = test-bison-nr
-scanner.c: $(srcdir)/scanner.l
+scanner.c scanner.h: $(srcdir)/scanner.l
$(FLEX) $<
parser.c: $(srcdir)/parser.y
@@ -50,4 +50,5 @@
$(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
parser.h: parser.c
-scanner.c main.o: parser.h
+scanner.o: parser.h
+main.o: parser.h scanner.h
diff -ur -x Makefile.in flex-2.5.35/tests/test-bison-yylloc/Makefile.am flex-2.5.35.new/tests/test-bison-yylloc/Makefile.am
--- flex-2.5.35/tests/test-bison-yylloc/Makefile.am 2006-11-09 21:14:46.000000000 +0100
+++ flex-2.5.35.new/tests/test-bison-yylloc/Makefile.am 2008-11-29 21:23:57.000000000 +0100
@@ -34,7 +34,7 @@
testname = test-bison-yylloc
-scanner.c: $(srcdir)/scanner.l
+scanner.c scanner.h: $(srcdir)/scanner.l
$(FLEX) $<
parser.c: $(srcdir)/parser.y
@@ -50,4 +50,5 @@
$(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
parser.h: parser.c
-scanner.c main.o: parser.h
+scanner.o: parser.h
+main.o: parser.h scanner.h
diff -ur -x Makefile.in flex-2.5.35/tests/test-bison-yylval/Makefile.am flex-2.5.35.new/tests/test-bison-yylval/Makefile.am
--- flex-2.5.35/tests/test-bison-yylval/Makefile.am 2006-11-09 21:14:46.000000000 +0100
+++ flex-2.5.35.new/tests/test-bison-yylval/Makefile.am 2008-11-29 21:06:39.000000000 +0100
@@ -34,7 +34,7 @@
testname = test-bison-yylval
-scanner.c: $(srcdir)/scanner.l
+scanner.c scanner.h: $(srcdir)/scanner.l
$(FLEX) $<
parser.c: $(srcdir)/parser.y
@@ -50,4 +50,4 @@
$(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
parser.h: parser.c
-main.o: parser.h
+main.o: parser.h scanner.h
diff -ur -x Makefile.in flex-2.5.35/debian/common/targets.mk flex-2.5.35.new/debian/common/targets.mk
--- flex-2.5.35/debian/common/targets.mk 2008-11-29 21:26:12.000000000 +0100
+++ flex-2.5.35.new/debian/common/targets.mk 2008-11-29 21:14:05.000000000 +0100
@@ -84,20 +84,20 @@
# Just a dummy target to make sure that the stamp directory exists
debian/stamp/dummy-config-common:
$(REASON)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
# Configuration tasks common to arch and arch indep packages go here
debian/stamp/pre-config-common: debian/stamp/dummy-config-common
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
# Do not add dependencies to this rule
debian/stamp/do-pre-config-common: debian/stamp/dummy-config-common
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
$(MAKE) -f debian/rules debian/stamp/pre-config-common
@echo done > $@
@@ -105,13 +105,13 @@
debian/stamp/pre-config-arch: debian/stamp/do-pre-config-common
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
# Do not add dependencies to this rule
debian/stamp/do-pre-config-arch: debian/stamp/do-pre-config-common
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
$(MAKE) -f debian/rules debian/stamp/pre-config-arch
@echo done > $@
@@ -119,13 +119,13 @@
debian/stamp/pre-config-indep: debian/stamp/do-pre-config-common
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
# Do not add dependencies to this rule
debian/stamp/do-pre-config-indep: debian/stamp/do-pre-config-common
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
$(MAKE) -f debian/rules debian/stamp/pre-config-indep
@echo done > $@
@@ -138,29 +138,29 @@
$(patsubst %,debian/stamp/CONFIG/%,$(DEB_INDEP_PACKAGES)) : debian/stamp/CONFIG/% : debian/stamp/do-pre-config-indep
$(REASON)
$(checkdir)
- @test -d debian/stamp/CONFIG || mkdir debian/stamp/CONFIG
+ @test -d debian/stamp/CONFIG || mkdir -p debian/stamp/CONFIG
@echo done > $@
# Do not add dependencies to this rule
debian/stamp/dep-configure-arch: debian/stamp/do-pre-config-arch $(patsubst %,debian/stamp/CONFIG/%,$(DEB_ARCH_PACKAGES))
$(REASON)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
# Do not add dependencies to this rule
debian/stamp/dep-configure-indep: debian/stamp/do-pre-config-indep $(patsubst %,debian/stamp/CONFIG/%,$(DEB_INDEP_PACKAGES))
$(REASON)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
debian/stamp/do-configure-arch: debian/stamp/do-pre-config-arch
$(REASON)
- @test -d debian/stamp/CONFIG || mkdir debian/stamp/CONFIG
+ @test -d debian/stamp/CONFIG || mkdir -p debian/stamp/CONFIG
$(MAKE) -f debian/rules debian/stamp/dep-configure-arch
@echo done > $@
debian/stamp/do-configure-indep: debian/stamp/do-pre-config-indep
$(REASON)
- @test -d debian/stamp/CONFIG || mkdir debian/stamp/CONFIG
+ @test -d debian/stamp/CONFIG || mkdir -p debian/stamp/CONFIG
$(MAKE) -f debian/rules debian/stamp/dep-configure-indep
@echo done > $@
@@ -181,19 +181,19 @@
debian/stamp/pre-build-common:
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
# Arch specific and arch independent tasks go here
debian/stamp/pre-build-arch: debian/stamp/do-configure-arch
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
debian/stamp/do-pre-build-arch: debian/stamp/do-configure-arch
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@test -e debian/stamp/pre-build-common || $(MAKE) -f debian/rules debian/stamp/pre-build-common
$(MAKE) -f debian/rules debian/stamp/pre-build-arch
@echo done > $@
@@ -201,12 +201,12 @@
debian/stamp/pre-build-indep: debian/stamp/do-configure-indep
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
debian/stamp/do-pre-build-indep: debian/stamp/do-configure-indep
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@test -e debian/stamp/pre-build-common || $(MAKE) -f debian/rules debian/stamp/pre-build-common
$(MAKE) -f debian/rules debian/stamp/pre-build-indep
@echo done > $@
@@ -230,12 +230,12 @@
# package target dependencies are run.
debian/stamp/dep-build-arch: debian/stamp/do-pre-build-arch $(patsubst %,debian/stamp/BUILD/%,$(DEB_ARCH_PACKAGES))
$(REASON)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
debian/stamp/dep-build-indep: debian/stamp/do-pre-build-indep $(patsubst %,debian/stamp/BUILD/%,$(DEB_INDEP_PACKAGES))
$(REASON)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
debian/stamp/do-build-arch: debian/stamp/do-pre-build-arch
@@ -262,21 +262,21 @@
# Work here
debian/stamp/post-build-arch: debian/stamp/do-build-arch
$(REASON)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
debian/stamp/do-post-build-arch: debian/stamp/do-build-arch
$(REASON)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
$(MAKE) -f debian/rules debian/stamp/post-build-arch
@echo done > $@
debian/stamp/post-build-indep: debian/stamp/do-build-indep
$(REASON)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
debian/stamp/do-post-build-indep: debian/stamp/do-build-indep
$(REASON)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
$(MAKE) -f debian/rules debian/stamp/post-build-indep
@echo done > $@
@@ -289,19 +289,19 @@
debian/stamp/pre-inst-common:
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
# Arch specific and arch independent tasks go here
debian/stamp/pre-inst-arch: debian/stamp/do-post-build-arch
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
debian/stamp/do-pre-inst-arch: debian/stamp/do-post-build-arch
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@test -e debian/stamp/INST-common || $(MAKE) -f debian/rules debian/stamp/pre-inst-common
$(MAKE) -f debian/rules debian/stamp/pre-inst-arch
@echo done > $@
@@ -309,12 +309,12 @@
debian/stamp/pre-inst-indep: debian/stamp/do-post-build-indep
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
debian/stamp/do-pre-inst-indep: debian/stamp/do-post-build-indep
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@test -e debian/stamp/INST-common || $(MAKE) -f debian/rules debian/stamp/pre-inst-common
$(MAKE) -f debian/rules debian/stamp/pre-inst-indep
@echo done > $@
@@ -324,12 +324,12 @@
$(patsubst %,debian/stamp/INST/%,$(DEB_ARCH_PACKAGES)) : debian/stamp/INST/% : debian/stamp/do-pre-inst-arch
$(REASON)
$(checkdir)
- @test -d debian/stamp/INST || mkdir debian/stamp/INST
+ @test -d debian/stamp/INST || mkdir -p debian/stamp/INST
@echo done > $@
$(patsubst %,debian/stamp/INST/%,$(DEB_INDEP_PACKAGES)) : debian/stamp/INST/% : debian/stamp/do-pre-inst-indep
$(REASON)
$(checkdir)
- @test -d debian/stamp/INST || mkdir debian/stamp/INST
+ @test -d debian/stamp/INST || mkdir -p debian/stamp/INST
@echo done > $@
# These do targeta make sure all the per package configuration is
@@ -338,25 +338,25 @@
# package target dependencies are run.
debian/stamp/dep-install-arch: debian/stamp/do-pre-inst-arch $(patsubst %,debian/stamp/INST/%,$(DEB_ARCH_PACKAGES))
$(REASON)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
debian/stamp/dep-install-indep: debian/stamp/do-pre-inst-indep $(patsubst %,debian/stamp/INST/%,$(DEB_INDEP_PACKAGES))
$(REASON)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
debian/stamp/do-install-arch: debian/stamp/do-pre-inst-arch
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
$(MAKE) -f debian/rules debian/stamp/dep-install-arch
@echo done > $@
debian/stamp/do-install-indep: debian/stamp/do-pre-inst-indep
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
$(MAKE) -f debian/rules debian/stamp/dep-install-indep
@echo done > $@
@@ -380,19 +380,19 @@
debian/stamp/pre-bin-common:
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
# Arch specific and arch independent tasks go here
debian/stamp/pre-bin-arch: debian/stamp/do-install-arch
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
debian/stamp/do-pre-bin-arch: debian/stamp/do-install-arch
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@test -e debian/stamp/BIN-common || $(MAKE) -f debian/rules debian/stamp/pre-bin-common
$(MAKE) -f debian/rules debian/stamp/pre-bin-arch
@echo done > $@
@@ -400,12 +400,12 @@
debian/stamp/pre-bin-indep: debian/stamp/do-install-indep
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
debian/stamp/do-pre-bin-indep: debian/stamp/do-install-indep
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@test -e debian/stamp/BIN-common || $(MAKE) -f debian/rules debian/stamp/pre-bin-common
$(MAKE) -f debian/rules debian/stamp/pre-bin-indep
@echo done > $@
@@ -414,13 +414,13 @@
$(patsubst %,debian/stamp/BIN/%,$(DEB_ARCH_PACKAGES)) : debian/stamp/BIN/% : debian/stamp/do-pre-bin-arch
$(REASON)
$(checkdir)
- @test -d debian/stamp/BIN || mkdir debian/stamp/BIN
+ @test -d debian/stamp/BIN || mkdir -p debian/stamp/BIN
@echo done > $@
$(patsubst %,debian/stamp/BIN/%,$(DEB_INDEP_PACKAGES)) : debian/stamp/BIN/% : debian/stamp/do-pre-bin-indep
$(REASON)
$(checkdir)
- @test -d debian/stamp/BIN || mkdir debian/stamp/BIN
+ @test -d debian/stamp/BIN || mkdir -p debian/stamp/BIN
@echo done > $@
# These do targeta make sure all the per package work is done, but is
@@ -429,24 +429,24 @@
# target dependencies are run.
debian/stamp/dep-binary-arch: debian/stamp/pre-bin-arch $(patsubst %,debian/stamp/BIN/%,$(DEB_ARCH_PACKAGES))
$(REASON)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
debian/stamp/dep-binary-indep: debian/stamp/pre-bin-indep $(patsubst %,debian/stamp/BIN/%,$(DEB_INDEP_PACKAGES))
$(REASON)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
@echo done > $@
debian/stamp/do-binary-arch: debian/stamp/do-pre-bin-arch
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
$(MAKE) -f debian/rules debian/stamp/dep-binary-arch
@echo done > $@
debian/stamp/do-binary-indep: debian/stamp/do-pre-bin-indep
$(REASON)
$(checkdir)
- @test -d debian/stamp || mkdir debian/stamp
+ @test -d debian/stamp || mkdir -p debian/stamp
$(MAKE) -f debian/rules debian/stamp/dep-binary-indep
@echo done > $@
# required
diff -ur -x Makefile.in flex-2.5.35/debian/local.mk flex-2.5.35.new/debian/local.mk
--- flex-2.5.35/debian/local.mk 2008-11-29 21:26:12.000000000 +0100
+++ flex-2.5.35.new/debian/local.mk 2008-11-29 21:21:04.000000000 +0100
@@ -42,7 +42,7 @@
debian/stamp/conf/flex:
$(checkdir)
$(REASON)
- @test -d debian/stamp/conf || mkdir debian/stamp/conf
+ @test -d debian/stamp/conf || mkdir -p debian/stamp/conf
if ! which flex >/dev/null 2>&1; then \
if [ -e debian/scan.l.md5sum ] && \
[ "`md5sum scan.l`" = "`cat debian/scan.l.md5sum`" ]; then \
@@ -60,7 +60,7 @@
$(checkdir)
$(REASON)
$(CHECKPO)
- @test -d debian/stamp/build || mkdir debian/stamp/build
+ @test -d debian/stamp/build || mkdir -p debian/stamp/build
bash -n debian/doc.postinst
bash -n debian/doc.prerm
bash -n debian/postinst
@@ -75,7 +75,7 @@
debian/stamp/build/flex-doc:
$(checkdir)
$(REASON)
- @test -d debian/stamp/build || mkdir debian/stamp/build
+ @test -d debian/stamp/build || mkdir -p debian/stamp/build
$(MAKE) -C doc flex.info flex.html
@echo done > $@
@@ -96,7 +96,7 @@
$(install_file) doc/flex.html/* $(DOCDIR)/html/
ln -s NEWS.gz $(DOCDIR)/changelog.gz
$(install_file) debian/docentry $(DOCBASEDIR)/$(package)
- @test -d debian/stamp/install || mkdir debian/stamp/install
+ @test -d debian/stamp/install || mkdir -p debian/stamp/install
@echo done > $@
debian/stamp/install/flex:
@@ -155,7 +155,7 @@
ln -s flex.1.gz $(MAN1DIR)/flex++.1.gz
ln -s flex $(BINDIR)/lex
ln -s libfl.a $(LIBDIR)/libl.a
- @test -d debian/stamp/install || mkdir debian/stamp/install
+ @test -d debian/stamp/install || mkdir -p debian/stamp/install
@echo done > $@
debian/stamp/binary/flex-doc:
@@ -171,7 +171,7 @@
chown -R root:root $(TMPTOP)
chmod -R u+w,go=rX $(TMPTOP)
dpkg --build $(TMPTOP) ..
- @test -d debian/stamp/binary || mkdir debian/stamp/binary
+ @test -d debian/stamp/binary || mkdir -p debian/stamp/binary
@echo done > $@
debian/stamp/binary/flex:
@@ -191,5 +191,5 @@
chown -R root:root $(TMPTOP)
chmod -R u+w,go=rX $(TMPTOP)
dpkg --build $(TMPTOP) ..
- @test -d debian/stamp/binary || mkdir debian/stamp/binary
+ @test -d debian/stamp/binary || mkdir -p debian/stamp/binary
@echo done > $@