Hi,
I have received a bug-report saying that 'make distclean' fails for GNU APL.
The error message is this:
make[2]: Entering directory `/home/eedjsa/projects/juergen/apl-1.5/src'
Makefile:837: .deps/apl-Archive.Po: No such file or directory
Makefile:838: .deps/apl-ArrayIterator.Po: No such file or directory
Makefile:839: .deps/apl-Assert.Po: No such file or directory
Makefile:840: .deps/apl-Avec.Po: No such file or directory
Makefile:841: .deps/apl-Backtrace.Po: No such file or directory
...
Makefile:916: .deps/apl-Workspace.Po: No such file or directory
Makefile:917: .deps/apl-configure_args.Po: No such file or directory
Makefile:918: .deps/apl-main.Po: No such file or directory
Makefile:919: .deps/libapl_la-Archive.Plo: No such file or directory
Makefile:920: .deps/libapl_la-ArrayIterator.Plo: No such file or directory
Makefile:921: .deps/libapl_la-Assert.Plo: No such file or directory
Makefile:922: .deps/libapl_la-Avec.Plo: No such file or directory
Makefile:923: .deps/libapl_la-Backtrace.Plo: No such file or directory
...
Makefile:998: .deps/libapl_la-Workspace.Plo: No such file or directory
Makefile:999: .deps/libapl_la-configure_args.Plo: No such file or directory
Makefile:1000: .deps/libapl_la-libapl.Plo: No such file or directory
make[2]: *** No rule to make target `.deps/libapl_la-libapl.Plo'. Stop.
make[2]: Leaving directory `/home/eedjsa/projects/juergen/apl-1.5/src'
make[1]: *** [distclean-recursive] Error 1
make[1]: Leaving directory `/home/eedjsa/projects/juergen/apl-1.5/src'
make: *** [distclean-recursive] Error 1
----------------------------------------------------------------------------------------------------
From what I can see:
(1) the libapl related files should not be deleted in the first place .
The Makefile.am (attached) uses:
if WANT_LIBAPL
which is an AM_CONDITIONAL() and the project was NOT ./configure'd to
build libapl
(2) why would 'make distclean' try (and then fail) to build any targets
in the first place?
Shouldn't it just delete files created by ./configure and be happy if
they are gone?
------------------------------------------------------
automake version is 1.14.1
autoconf version is 2.69
The whole project is at http://svn.savannah.gnu.org/viewvc/trunk/?root=apl
Sometimes make distclean works, but I haven't figured when.
Thanks,
Jürgen Sauermann
EXTRA_DIRS =
if ! WANT_ANDROID
EXTRA_DIRS += APs emacs_mode sql workspaces
endif
SUBDIRS = native $(EXTRA_DIRS)
DIST_SUBDIRS = $(SUBDIRS) testcases
datadir = @datadir@
localedir = $(datadir)/locale
distcleancheck_listfile = buildtag
common_sources = \
buildtag buildtag.hh \
../config.h \
APL_types.hh \
Archive.cc Archive.hh \
ArrayIterator.cc ArrayIterator.hh \
Assert.cc Assert.hh \
Avec.cc Avec.def Avec.hh \
Backtrace.cc Backtrace.hh \
Bif_F12_FORMAT.cc Bif_F12_FORMAT.hh \
Bif_F12_SORT.cc Bif_F12_SORT.hh \
Bif_OPER1_COMMUTE.cc Bif_OPER1_COMMUTE.hh \
Bif_OPER1_EACH.cc Bif_OPER1_EACH.hh \
Bif_OPER2_POWER.cc Bif_OPER2_POWER.hh \
Bif_OPER2_INNER.cc Bif_OPER2_INNER.hh \
Bif_OPER2_OUTER.cc Bif_OPER2_OUTER.hh \
Bif_OPER2_RANK.cc Bif_OPER2_RANK.hh \
Bif_OPER1_REDUCE.cc Bif_OPER1_REDUCE.hh \
Bif_OPER1_SCAN.cc Bif_OPER1_SCAN.hh \
CDR.cc CDR.hh \
Cell.cc Cell.hh \
CharCell.cc CharCell.hh \
Command.cc Command.def Command.hh \
Common.cc Common.hh \
ComplexCell.cc ComplexCell.hh \
configure_args.cc \
DiffOut.cc DiffOut.hh \
DynamicObject.cc DynamicObject.hh \
EOC_arg.cc EOC_arg.hh \
Error.cc Error.def Error.hh \
ErrorCode.hh \
Executable.cc Executable.hh \
FloatCell.cc FloatCell.hh \
Function.cc Function.hh \
DerivedFunction.cc DerivedFunction.hh \
Heapsort.hh \
Id.cc Id.def Id.hh \
IndexExpr.cc IndexExpr.hh \
IndexIterator.cc IndexIterator.hh \
InputFile.cc InputFile.hh \
IntCell.cc IntCell.hh \
LApack.cc LApack.hh \
LibPaths.cc LibPaths.hh \
LineInput.cc LineInput.hh \
Logging.cc Logging.def Logging.hh \
LvalCell.cc LvalCell.hh \
makefile.h \
Malloc_hooks.cc \
Nabla.cc Nabla.hh \
NamedObject.cc NamedObject.hh \
NativeFunction.cc NativeFunction.hh \
Native_interface.hh \
NumericCell.cc NumericCell.hh \
Output.cc Output.hh \
Parser.cc Parser.hh \
Prefix.cc Prefix.def Prefix.hh \
PointerCell.cc PointerCell.hh \
PrimitiveFunction.cc PrimitiveFunction.hh \
PrimitiveOperator.cc PrimitiveOperator.hh \
PrintBuffer.cc PrintBuffer.hh \
PrintContext.hh \
PrintOperator.hh \
QuadFunction.cc QuadFunction.hh \
ProcessorID.cc ProcessorID.hh \
Quad_CR.cc Quad_CR.hh \
Quad_FIO.cc Quad_FIO.hh \
Quad_FX.cc Quad_FX.hh \
Quad_RL.cc Quad_RL.hh \
Quad_SVx.cc Quad_SVx.hh \
Quad_TF.cc Quad_TF.hh \
Parallel.cc Parallel.hh \
Performance.cc Performance.def Performance.hh \
RealCell.cc RealCell.hh \
Shape.cc Shape.hh \
SharedValuePointer.hh \
Simple_string.hh \
ScalarFunction.cc ScalarFunction.hh \
Source.hh \
StateIndicator.cc StateIndicator.hh \
Svar_DB.cc Svar_DB.hh \
Svar_record.cc Svar_record.hh \
tcp_signal.m4 Svar_signals.def Svar_signals.hh \
Symbol.cc Symbol.hh \
SymbolTable.cc SymbolTable.hh \
SystemLimits.def SystemLimits.hh \
SystemVariable.cc SystemVariable.def SystemVariable.hh \
IO_Files.cc IO_Files.hh \
Token.cc Token.def Token.hh \
TokenEnums.hh \
Tokenizer.cc Tokenizer.hh \
UCS_string.cc UCS_string.hh \
Unicode.hh \
UserFunction.cc UserFunction.hh \
UserPreferences.cc UserPreferences.hh \
UTF8_string.cc UTF8_string.hh \
Value.cc Value.icc Value.hh \
ValueHistory.cc ValueHistory.hh \
Workspace.cc Workspace.hh
pkglib_LTLIBRARIES =
if WANT_LIBAPL
pkglib_LTLIBRARIES += libapl.la
pkginclude_HEADERS = libapl.h
libapl_la_SOURCES = $(common_sources) libapl.h libapl.cc
libapl_la_LDFLAGS = -avoid-version -module -shared -export-dynamic
libapl_la_CXXFLAGS = $(GPROF_WANTED) $(CXX_RDYNAMIC)
if DEVELOP
libapl_la_CXXFLAGS += -Werror -Wall -Wno-strict-aliasing
endif
else
bin_PROGRAMS = apl
apl_SOURCES = main.cc $(common_sources)
endif
# normally we would say:
#
# Svar_signals.hh: Svar_signals.def tcp_signal.m4
#
# but what if m4 is missing? So we explicitly 'make update-svar_signals'
# when Svar_signals.def or tcp_signal.m4 have changed (which rarely happens)
#
.PHONY: update-svar_signals
update-svar_signals:
m4 -D protocol=Svar_signals tcp_signal.m4 > Svar_signals.hh
apl_CXXFLAGS = $(GPROF_WANTED) $(CXX_RDYNAMIC)
if DEVELOP
apl_CXXFLAGS += -Werror -Wall -Wno-strict-aliasing
endif
apl_LDADD = $(LIBS)
apl.lines: apl
objdump -j .text -l -d $< > $@
test: all
./apl --id 1010 -T testcases/*tc
test1: all
./apl --id 1010 --TM 3 -T testcases/*\.tc
test2: all
./apl --id 1010 --TR -T testcases/*tc
# run testcases related to APs
testAP: all
./apl --id 1010 -T testcases/AP*tc
perf: apl
./apl --id 1010 --TM 3 -T testcases/Performance.pt
AM_MAKEFLAGS = -j 4
makefile.h:
@echo "// some strings exported from Makefile" > $@
@echo "//" >> $@
@echo "#define Makefile__bindir \"${bindir}\"" >> $@
@echo "#define Makefile__docdir \"${docdir}\"" >> $@
@echo "#define Makefile__sysconfdir \"${sysconfdir}\"" >> $@
@echo "#define Makefile__pkglibdir \"${pkglibdir}\"" >> $@
@echo "#define Makefile__localedir \"${localedir}\"" >> $@
@echo "#define Makefile__srcdir \"${abs_srcdir}\"" >> $@
@echo >> $@
.PHONY: patch
patch:
mkdir -p patches
svn diff > patches/`date +patch_%F-%R.diff`
.PHONY: git-pull
git-pull:
make -C emacs_mode $@
make -C sql $@
.PHONY: help
help:
@echo ""
@echo ""
@echo "in addition to standard targets (all, install, clean, ...) "
@echo "the following make targets may be supported (at this level):"
@echo ""
@echo " make help - print this text"
@echo " make git-pull - pull sql and emacs subdirs"
@echo " make update-svar_signals - remake Svar_signals.hh"
@echo ""