I am currently constructing a Makefile and one of the things it will be doing is downloading and building postgres from source. Before starting to write the makefile file I always used the following set of commands to do this:
curl -LJ https://github.com/postgres/postgres/archive/refs/tags/REL_13_3.zip -o postgres.zip
unzip postgres.zip
rm postgres.zip
cd postgres-REL_13_3
./configure --prefix "`pwd`" --without-readline --without-zlib
make
make install
Executing the above listed commands in the terminal results in the successful installation of postgres. Then I translated these into a makefile which looks as follows:
build:
curl -LJ https://github.com/postgres/postgres/archive/refs/tags/REL_13_3.zip -o postgres.zip
unzip postgres.zip
rm postgres.zip
cd postgres-REL_13_3 \
&& ./configure --prefix "`pwd`" --without-readline --without-zlib \
&& $(MAKE) \
&& $(MAKE) install
Running this Makefile results in the error:
../../src/include/utils/elog.h:71:10: fatal error: 'utils/errcodes.h' file not found
It seems that something about calling the make from another Makefile causes a referencing issue with the files during the build process, but I just can figure out for the life of me what I have to change to fix this.
It appears to be the influence of Makefile enviromental variables. I didn't discover the exact mechanism, but unsetting them helps.
build:
curl -LJ https://github.com/postgres/postgres/archive/refs/tags/REL_13_3.zip -o postgres.zip
unzip postgres.zip
rm postgres.zip
unset MAKELEVEL && unset MAKEFLAGS && unset MFLAGS && cd postgres-REL_13_3 \
&& ./configure --prefix "`pwd`" --without-readline --without-zlib \
&& $(MAKE) \
&& $(MAKE) install
I am trying to build rocketchip & vsim for the same as described here
But I am stuck at vsim run while doing below:
koushik#koushik-Presario-CQ43-Notebook-PC:~/riscv_ks/rocket-chip/vsim$ make -j2 run
mkdir -p ./output
cd . && \
rm -rf csrc && \
vcs -full64 -notice -line +lint=all,noVCDE,noONGS,noUI -error=PCWM-L -timescale=1ns/10ps -quiet +rad +v2k +vcs+lic+wait +vc+list -CC "-I/include" -CC "-I/home/koushik/riscvtools/include" -CC "-std=c++11" -CC "-Wl,-rpath,/home/koushik/riscvtools/lib" /home/koushik/riscvtools/lib/libfesvr.so -sverilog +incdir+/home/koushik/riscv_ks/rocket-chip/vsim/generated-src +define+CLOCK_PERIOD=1.0 /home/koushik/riscv_ks/rocket-chip/vsim/generated-src/freechips.rocketchip.system.DefaultConfig.v /home/koushik/riscv_ks/rocket-chip/vsim/generated-src/freechips.rocketchip.system.DefaultConfig.behav_srams.v /home/koushik/riscv_ks/rocket-chip/src/main/resources/vsrc/TestDriver.v /home/koushik/riscv_ks/rocket-chip/src/main/resources/vsrc/SimDTM.v /home/koushik/riscv_ks/rocket-chip/src/main/resources/vsrc/SimJTAG.v /home/koushik/riscv_ks/rocket-chip/src/main/resources/vsrc/plusarg_reader.v /home/koushik/riscv_ks/rocket-chip/src/main/resources/vsrc/ClockDivider2.v /home/koushik/riscv_ks/rocket-chip/src/main/resources/vsrc/ClockDivider3.v /home/koushik/riscv_ks/rocket-chip/src/main/resources/vsrc/AsyncResetReg.v /home/koushik/riscv_ks/rocket-chip/src/main/resources/vsrc/EICG_wrapper.v /home/koushik/riscv_ks/rocket-chip/src/main/resources/csrc/SimDTM.cc /home/koushik/riscv_ks/rocket-chip/src/main/resources/csrc/SimJTAG.cc /home/koushik/riscv_ks/rocket-chip/src/main/resources/csrc/remote_bitbang.cc +define+PRINTF_COND=TestDriver.printf_cond +define+STOP_COND=!TestDriver.reset +define+RANDOMIZE_MEM_INIT +define+RANDOMIZE_REG_INIT +define+RANDOMIZE_GARBAGE_ASSIGN +define+RANDOMIZE_INVALID_ASSIGN +define+RANDOMIZE_DELAY=2 +libext+.v -o ./simv-freechips.rocketchip.system-DefaultConfig \
-debug_pp \
ln -fs /home/koushik/riscvtools/riscv64-unknown-elf/share/riscv-tests/isa/rv64um-v-mul output/rv64um-v-mul
/bin/bash: line 2: vcs: command not found
Makefrag:68: recipe for target 'simv-freechips.rocketchip.system-DefaultConfig' failed
make: *** [simv-freechips.rocketchip.system-DefaultConfig] Error 127
make: *** Waiting for unfinished jobs....
You don't have VCS installed so its failing to find the command that runs it.
Try "make verilog", this should created the default configuration of rocket-chip.
or if you want to create one of the other canned configurations in Config.scala then you can use "make CONFIG=TinyConfig verilog" where TinyConfig can be replaced with any of the canned configurations.
Thanks,
Ciaran
I am encountering problems to install and run the MLton compiler in a Docker container using Alpine Linux.
Is there a way to install this compiler on this system?
Try #1
Using the standard `alpine base image and the binary distribution of MLton:
$ curl http://sourceforge.net/projects/mlton/files/mlton/20130715/mlton-20130715-1.amd64-linux.tgz --output mlton-20130715-1.amd64-linux.tgz
$ docker build .
With the following Dockerfile:
FROM alpine
COPY mlton-20130715-1.amd64-linux.tgz /
RUN apk add --no-cache bash build-base gmp-dev linux-headers \
&& tar xf /mlton-20130715-1.amd64-linux.tgz \
--directory /usr/ \
--strip-components 1 \
&& echo 'print "Hello, world!\n";' >> hello-world.sml \
&& mlton hello-world.sml
Docker build fails with the following error message, probably because glibc is missing.
/usr/bin/mlton: line 52: /usr/lib/mlton/mlton-compile: No such file or directory
Try #2
The same as above, with a base Docker image that embeds glibc:
FROM frolvlad/alpine-glibc
This time, mlton runs, but produces the following error:
/usr/lib/gcc/x86_64-alpine-linux-musl/6.4.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/lib/mlton/targets/self/libmlton.a(platform.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
...
/usr/lib/gcc/x86_64-alpine-linux-musl/6.4.0/../../../../x86_64-alpine-linux-musl/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
call to system failed with exit status 1:
gcc -o hello-world /tmp/fileGEluFu.o /tmp/fileYnNjh9.o -L/usr/lib/mlton/targets/self -lmlton -lgdtoa -lm -lgmp -m64 -Wl,-znoexecstack
Any idea on how to solve this problem?
When I try to build Emacs from https://github.com/emacs-mirror/emacs at 4f54f7b using ./autogen.sh it errors as
Checking whether you have the necessary tools...
(Read INSTALL.REPO for more details on building Emacs)
Checking for autoconf (need at least version 2.65)...
ok
Checking for automake (need at least version 1.11)...
ok
Your system has the required tools.
Running 'autoreconf -fi -I m4' ...
configure.ac:54: error: possibly undefined macro: AS_ECHO
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:95: error: possibly undefined macro: AM_INIT_AUTOMAKE
configure.ac:245: error: possibly undefined macro: AC_DEFINE
configure.ac:752: error: possibly undefined macro: AM_PROG_CC_C_O
configure.ac:763: error: possibly undefined macro: AM_CONDITIONAL
configure.ac:1020: error: possibly undefined macro: AM_SUBST_NOTMAKE
configure.ac:1471: error: possibly undefined macro: m4_default
autoreconf: /usr/bin/autoconf failed with exit status: 1
I've tried the common tricks to solve it without success. What to do?
Update: make bootstrap fails as
cd . && ACLOCAL_PATH='' /bin/bash /home/per/Work/emacs/build-aux/missing aclocal-1.14 -I m4
if [ -x ./config.status ]; then \
./config.status --recheck; \
else \
./configure --cache-file=/dev/null; \
fi
cd . && /bin/bash /home/per/Work/emacs/build-aux/missing automake-1.14 --gnu -a -c lib/Makefile
[ -r "src/config.in" ] || ( cd . && /bin/bash /home/per/Work/emacs/build-aux/missing autoheader )
running CONFIG_SHELL=/bin/bash /bin/bash ./configure --prefix=/home/per/opt/x86_64-unknown-linux-gnu/emacs-snapshot CFLAGS=-O2 PKG_CONFIG_PATH=/home/per/opt/x86_64-unknown-linux-gnu/fish-snapshot/share/pkgconfig:/home/per/opt/x86_64-unknown-linux-gnu/sparsehash-2.0.2/lib/pkgconfig:/home/per/opt/x86_64-unknown-linux-gnu/igraph-0.6/lib/pkgconfig:/home/per/opt/x86_64-unknown-linux-gnu/libarchive-snapshot/lib/pkgconfig:/home/per/opt/x86_64-unknown-linux-gnu/libgit2-snapshot/lib/pkgconfig:/home/per/opt/x86_64-unknown-linux-gnu/nettle-3.0/lib/pkgconfig: --no-create --no-recursion
checking for xcrun... no
checking for GNU Make... make
./configure: line 2853: syntax error near unexpected token `1.11'
./configure: line 2853: `AM_INIT_AUTOMAKE(1.11)'
Makefile:412: receptet för målet ”config.status” misslyckades
make: *** [config.status] Fel 2
I am trying to build Emacs on 64-bit Windows 7 using Cyqwin:
Emacs 23.3 or 23.4
CYGWIN_NT-6.1-WOW64 1.7.11(0.260/5/3) 2012-02-24 14:05 i686 Cygwin
Some info from ./configure log:
What compiler should emacs be built with?
gcc -g -O2 -Wdeclarati
What operating system and machine description files should Emacs use?
`s/cygwin.h' and `m/intel386.h'
I am able to create Makefile without problems. However, if I run make procedure, it is building for couple of minutes then, in certain point, it gets stuck for 2 minutes and then produces error:
Makefile:149: recipe for target `autoloads' failed
make[2]: *** [autoloads] Interrupt
Makefile:198: recipe for target `/cygdrive/c/emacs-23.3/src/../lisp/loaddefs.el' failed
make[1]: *** [/cygdrive/c/emacs-23.3/src/../lisp/loaddefs.el] Interrupt
Makefile:339: recipe for target `src' failed
make: *** [src] Interrupt
In both cases (Emacs 23.3 and 23.4) Makefile:149 referes to the same part of a makefile in Emacs\lisp folder:
149 autoloads: $(LOADDEFS) doit
150 , chmod +w $(lisp)/ps-print.el $(lisp)/emulation/tpu-edt.el \
151 $(lisp)/emacs-lisp/cl-loaddefs.el $(lisp)/mail/rmail.el \
152 $(lisp)/dired.el $(lisp)/ibuffer.el
153 wd=$(lisp); $(setwins_almost); \
154 echo Directories: $$wins; \
155 $(emacs) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
in version 23.3. the building gets stuck while generating autoloads for *.el files:
Generating autoloads for progmodes/cc-mode.el...
Generating autoloads for progmodes/cc-mode.el...done
Generating autoloads for progmodes/cc-styles.el...
Generating autoloads for progmodes/cc-styles.el...done
Generating autoloads for progmodes/cc-vars.el...
Generating autoloads for progmodes/cc-vars.el...done
Generating autoloads for international/ccl.el...
Makefile:149: recipe for target `autoloads' failed
make[2]: *** [autoloads] Interrupt
in verison 23.4 the building gets stuck while saving loaddefs:
make[2]: Entering directory `/cygdrive/c/emacs-23.4/lisp'
chmod +w /cygdrive/c/emacs-23.4/lisp/ps-print.el /cygdrive/c/emacs-23.4/lisp/emulation/tpu-edt.el \
/cygdrive/c/emacs-23.4/lisp/emacs-lisp/cl-loaddefs.el /cygdrive/c/emacs-23.4/lisp/mail/rmail.el \
/cygdrive/c/emacs-23.4/lisp/dired.el /cygdrive/c/emacs-23.4/lisp/ibuffer.el
wd=/cygdrive/c/emacs-23.4/lisp; subdirs=`(cd $wd; find . -type d -print)`; for file in $subdirs; do case $file in */Old | */RCS | */CVS | */CVS/* | */.* | */.*/* | */=* | */obsolete | */term ) ;; *) wins="$wins $wd/$file" ;; esac; done ; \
echo Directories: $wins; \
EMACSLOADPATH=/cygdrive/c/emacs-23.4/lisp LC_ALL=C ../src/bootstrap-emacs.exe -batch --no-site-file --multibyte -l autoload --eval '(setq generated-autoload-file "/cygdrive/c/emacs-23.4/lisp/loaddefs.el")' -f batch-update-autoloads $wins
Directories: /cygdrive/c/emacs-23.4/lisp/. /cygdrive/c/emacs-23.4/lisp/./calc /cygdrive/c/emacs-23.4/lisp/./calendar /cygdrive/c/emacs-23.4/lisp/./cedet /cygdrive/c/emacs-23.4/lisp/./cedet/ede /cygdrive/c/emacs-23.4/lisp/./cedet/semantic /cygdrive/c/emacs-23.4/lisp/./cedet/semantic/analyze /cygdrive/c/emacs-23.4/lisp/./cedet/semantic/bovine /cygdrive/c/emacs-23.4/lisp/./cedet/semantic/decorate/cygdrive/c/emacs-23.4/lisp/./cedet/semantic/symref /cygdrive/c/emacs-23.4/lisp/./cedet/semantic/wisent /cygdrive/c/emacs-23.4/lisp/./cedet/srecode /cygdrive/c/emacs-23.4/lisp/./emacs-lisp /cygdrive/c/emacs-23.4/lisp/./emulation /cygdrive/c/emacs-23.4/lisp/./erc /cygdrive/c/emacs-23.4/lisp/./eshell /cygdrive/c/emacs-23.4/lisp/./gnus /cygdrive/c/emacs-23.4/lisp/./international /cygdrive/c/emacs-23.4/lisp/./language /cygdrive/c/emacs-23.4/lisp/./mail /cygdrive/c/emacs-23.4/lisp/./mh-e /cygdrive/c/emacs-23.4/lisp/./net /cygdrive/c/emacs-23.4/lisp/./nxml /cygdrive/c/emacs-23.4/lisp/./org /cygdrive/c/emacs-23.4/lisp/./play /cygdrive/c/emacs-23.4/lisp/./progmodes /cygdrive/c/emacs-23.4/lisp/./textmodes /cygdrive/c/emacs-23.4/lisp/./url
Saving file /cygdrive/c/emacs-23.4/lisp/loaddefs.el...
Makefile:149: recipe for target `autoloads' failed
make[2]: *** [autoloads] Interrupt
Does anyone have a clue how can I fix this bug? Wrong C compiler ? Change Makefile? Use 'make' with some parameter?
Thank you for any help or reference.
************PART2************
Ok, so here is the continuing according to your advices:
1#
make autoloads
is not possible as it is because this sub-part is in the sub-makefile so it will produce error:
$ make autoloads
chmod +w /cygdrive/c/emacs-23.4/lisp/ps-print.el /cygdrive/c/emacs-23.4/lisp/emulation/tpu-edt.el \
/cygdrive/c/emacs-23.4/lisp/emacs-lisp/cl-loaddefs.el /cygdrive/c/emacs-23.4/lisps/mail/rmail.el \
/cygdrive/c/emacs-23.4/lisp/dired.el /cygdrive/c/emacs-23.4/lisp/ibuffer.el
wd=/cygdrive/c/emacs-23.4/lisp; subdirs=`(cd $wd; find . -type d -print)`; for file in $subdirs; do case $file in */Old | */RCS | */CVS | */CVS/* | */.* | */.*/* | */=* | */obsolete | */term ) ;; *) wins="$wins $wd/$file" ;; esac; done; \
echo Directories: $wins; \
EMACSLOADPATH=/cygdrive/c/emacs-23.4/lisp LC_ALL=C ../src/emacs -batch --no-site-file --multibyte -l autoload --eval '(setq generated-autoload-file "/cygdrive/c/emacs-23.4/lisp/loaddefs.el")' -f batch-update-autoloads $wins
Directories: /cygdrive/c/emacs-23.4/lisp/. /cygdrive/c/emacs-23.4/lisp/./calc /cygdrive/c/emacs-23.4/lisp/./calendar /cygdrive/c/emacs-23.4/lisp/./cedet /cygdrive/c/emacs-23.4/lisp/./cedet/ede /cygdrive/c/emacs-23.4/lisp/./cedet/semantic /cygdrive/c/emacs-23.4/lisp/./cedet/semantic/analyze /cygdrive/c/emacs-23.4/lisp/./cedet/semantic/bovine /cygdrive/c/emacs-23.4/lisp/./cedet/semantic/decorate /cygdrive/c/emacs-23.4/lisp/./cedet/semantic/symref /cygdrive/c/emacs-23.4/lisp/./cedet/semantic/wisent /cygdrive/c/emacs-23.4/lisp/./cedet/srecode /cygdrive/c/emacs-23.4/lisp/./emacs-lisp /cygdrive/c/emacs-23.4/lisp/./emulation /cygdrive/c/emacs-23.4/lisp/./erc /cygdrive/c/emacs-23.4/lisp/./eshell /cygdrive/c/emacs-23.4/lisp/./gnus /cygdrive/c/emacs-23.4/lisp/./international /cygdrive/c/emacs-23.4/lisp/./language /cygdrive/c/emacs-23.4/lisp/./mail /cygdrive/c/emacs-23.4/lisp/./mh-e /cygdrive/c/emacs-23.4/lisp/./net /cygdrive/c/emacs-23.4/lisp/./nxml /cygdrive/c/emacs-23.4/lisp/./org /cygdrive/c/emacs-23.4/lisp/./play /cygdrive/c/emacs-23.4/lisp/./progmodes /cygdrive/c/emacs-23.4/lisp/./textmodes /cygdrive/c/emacs-23.4/lisp/./url
/bin/sh: line 2: ../src/emacs: No such file or directory
Makefile:149: recipe for target `autoloads' failed
make: *** [autoloads] Error 127
If I am doing something wrong, please correct me.
2#
removing $(LOADDEFS) doit in deed does not change the result
3#
To run just the first part
autoloads:
chmod +w $(lisp)/ps-print.el $(lisp)/emulation/tpu-edt.el \
$(lisp)/emacs-lisp/cl-loaddefs.el $(lisp)/mail/rmail.el \
$(lisp)/dired.el $(lisp)/ibuffer.el
resolves in no error within autoloads,
however after 20 sec it froze for a while and produces another error
(description of this problem is bellow)
4#
To run the second part only:
autoloads:
wd=$(lisp); $(setwins_almost); \
echo Directories: $$wins; \
$(emacs) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
creshed with origin error
5#
to run autoloads as in 3# also with
wd=$(lisp);
autoloads without error, later same error as in 3#
6#
run autoloads with wd=$(lisp);$(setwins_almost);
autoloads without error, later same error as in 3#
7#
add also line
echo Directories: $$wins;
autoloads without error, later same error as in 3#
8#
add also line
$(emacs) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
the origin error, of course
DESCRIPTION of 2nd ERROR (part 3#):
make[2]: Entering directory `/cygdrive/c/emacs-23.4/lisp'
Compiling /cygdrive/c/emacs-23.4/src/../lisp/abbrev.el
>>Error occurred processing /cygdrive/c/emacs-23.4/src/../lisp/abbrev.el: Symbol's value as variabl e is void ((warning-series))
Makefile:1478: recipe for target `compile-onefile' failed
make[2]: *** [compile-onefile] Error 1
make[2]: Leaving directory `/cygdrive/c/emacs-23.4/lisp'
Makefile:195: recipe for target `/cygdrive/c/emacs-23.4/src/../lisp/abbrev.elc' failed
make[1]: *** [/cygdrive/c/emacs-23.4/src/../lisp/abbrev.elc] Error 2
make[1]: Leaving directory `/cygdrive/c/emacs-23.4/src'
Makefile:339: recipe for target `src' failed
make: *** [src] Error 2
before that a lot of *.el files are compiled
part of the Makefile in lisp/
# The src/Makefile.in has its own set of dependencies and when they decide
# that one Lisp file needs to be re-compiled, we had better recompile it as
# well, otherwise every subsequent make will again call us, until we finally
# end up deciding that yes, the file deserves recompilation.
# One option is to try and reproduce exactly the same dependencies here as
# we have in src/Makefile.in, but it turns out to be painful
# (e.g. src/Makefile.in may have a dependency for ../lisp/foo.elc where we
# only know of $(lisp)/foo.elc). So instead we provide a direct way for
# src/Makefile.in to rebuild a particular Lisp file, no questions asked.
# Use byte-compile-refresh-preloaded to try and work around some of
# the most common problems of not bootstrapping from a clean state.
1477 compile-onefile:
1478 #echo Compiling $(THEFILE)
1479 ## Use byte-compile-refresh-preloaded to try and work around some of
1480 ## the most common bootstrapping problems.
1481 #$(emacs) -l bytecomp -f byte-compile-refresh-preloaded $(BYTE_COMPILE_EXTRA_FLAGS) -f batch-byte-compile $(THEFILE)
There is a list of ELC files in Makefile:
## Explicitly list the .elc files, for the sake of parallel builds.
## http://lists.gnu.org/archive/html/bug-gnu-emacs/2008-05/msg00016.html
## This can probably be done more elegantly, but needs to be portable.
ELCFILES = \
$(lisp)/abbrev.elc \
$(lisp)/abbrevlist.elc \
$(lisp)/add-log.elc \
$(lisp)/align.elc \
$(lisp)/allout.elc \
$(lisp)/ansi-color.elc \
$(lisp)/apropos.elc \
$(lisp)/arc-mode.elc \
...
$(lisp)/info.elc \
$(lisp)/informat.elc \
$(lisp)/international/ccl.elc \
$(lisp)/international/characters.elc \
$(lisp)/international/fontset.elc \
$(lisp)/international/isearch-x.elc \
The Makefile somewhy recreates *.el files maybe from *.elc files, however all *.el files are already there. OK now I have two errors insted of one : )(if there are not connected of course)
Thank you again.
Generated makefiles are notoriously hard to maintain and troubleshoot, but we can try. The rule in question has two prerequisites and two commands, the second composed of four shell commands strung together:
autoloads: $(LOADDEFS) doit
chmod +w $(lisp)/ps-print.el $(lisp)/emulation/tpu-edt.el \
$(lisp)/emacs-lisp/cl-loaddefs.el $(lisp)/mail/rmail.el \
$(lisp)/dired.el $(lisp)/ibuffer.el
wd=$(lisp); $(setwins_almost); \
echo Directories: $$wins; \
$(emacs) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
First I would try make autoloads. If that gives the same error, we can proceed, otherwise post the results.
Then remove the prerequisites ($(LOADDEFS) doit), since they should be idempotent and have no effect of the operation of this rule (unless the makefile is really convoluted) and try again.
Then split the command into smaller commands and try one by one. First
autoloads:
chmod +w $(lisp)/ps-print.el $(lisp)/emulation/tpu-edt.el \
$(lisp)/emacs-lisp/cl-loaddefs.el $(lisp)/mail/rmail.el \
$(lisp)/dired.el $(lisp)/ibuffer.el
This should give no error. If it does then probably one of those files is missing; post the results. If not then try the second command without the first:
autoloads:
wd=$(lisp); $(setwins_almost); \
echo Directories: $$wins; \
$(emacs) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
I expect this will give the same error as originally; if not, just put the first command back in and proceed.
Now break down the second command. We can't omit the early parts, since the later parts depend on them, so first try
autoloads:
wd=$(lisp);
That should work, unless lisp is something weird (yeah, yeah, I know). Then
autoloads:
wd=$(lisp); $(setwins_almost);
I'll bet that's where it fails, but if not, continue:
autoloads:
wd=$(lisp); $(setwins_almost); \
echo Directories: $$wins;
That should work. Then
autoloads:
wd=$(lisp); $(setwins_almost); \
echo Directories: $$wins; \
$(emacs) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
will almost certainly fail.
That's enough for a first pass. Tell us the results and we'll proceed.
I'd recommend you try with the Emacs-24 pretest instead, and if that fails, report it as a bug.