@@ -2,134 +2,175 @@ # Do not use it unless you know exactly what you do! SHELL = /bin/sh MAKE = make -all : autoconf/aclocal.m4 configures avcall/avcall.h.msvc avcall/avcall.h.mingw32 avcall/avcall-i386-msvc.c avcall/avcall-i386-mingw32.c vacall/config.h.msvc vacall/config.h.mingw32 vacall/vacall.h.msvc vacall/vacall.h.mingw32 vacall/vacall-i386-msvc.c vacall/vacall-i386-mingw32.c trampoline/config.h.msvc trampoline/config.h.mingw32 callback/vacall_r/config.h.msvc callback/vacall_r/config.h.mingw32 callback/vacall_r/vacall_r.h.msvc callback/vacall_r/vacall_r.h.mingw32 callback/vacall_r/vacall-i386-msvc.c callback/trampoline_r/config.h.msvc callback/trampoline_r/config.h.mingw32 - -CONFIGURES = configure avcall/configure vacall/configure trampoline/configure callback/configure callback/vacall_r/configure callback/trampoline_r/configure -CONFIGURES_IN = configure.in avcall/configure.in vacall/configure.in trampoline/configure.in callback/configure.in callback/vacall_r/configure.in callback/trampoline_r/configure.in - -CLISP_DIR = .. - -m4/general.m4 : $(CLISP_DIR)/src/m4/general.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/proto.m4 : $(CLISP_DIR)/src/m4/proto.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/cc-gcc.m4 : $(CLISP_DIR)/src/m4/cc-gcc.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/as-underscore.m4 : $(CLISP_DIR)/src/m4/as-underscore.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/ranlib.m4 : $(CLISP_DIR)/src/m4/ranlib.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/install.m4 : $(CLISP_DIR)/src/m4/install.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/cp.m4 : $(CLISP_DIR)/src/m4/cp.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/ln.m4 : $(CLISP_DIR)/src/m4/ln.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/ffcall-pccstruct.m4 : $(CLISP_DIR)/src/m4/ffcall-pccstruct.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/ffcall-smallstruct.m4 : $(CLISP_DIR)/src/m4/ffcall-smallstruct.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/ffcall-ireg.m4 : $(CLISP_DIR)/src/m4/ffcall-ireg.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/longlong.m4 : $(CLISP_DIR)/src/m4/longlong.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/cc-void.m4 : $(CLISP_DIR)/src/m4/cc-void.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/stdc-headers.m4 : $(CLISP_DIR)/src/m4/stdc-headers.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/getpagesize.m4 : $(CLISP_DIR)/src/m4/getpagesize.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/mach-vm.m4 : $(CLISP_DIR)/src/m4/mach-vm.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/openflags.m4 : $(CLISP_DIR)/src/m4/openflags.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/mmap.m4 : $(CLISP_DIR)/src/m4/mmap.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/mprotect.m4 : $(CLISP_DIR)/src/m4/mprotect.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/shm.m4 : $(CLISP_DIR)/src/m4/shm.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/ffcall-codeexec.m4 : $(CLISP_DIR)/src/m4/ffcall-codeexec.m4 ; cp -p $< $@-t && mv $@-t $@ -m4/libtool.m4 : $(CLISP_DIR)/src/m4/libtool.m4 - sed -e 's,AC_CANONICAL_HOST,CL_CANONICAL_HOST,g' -e 's,AC_PROG_RANLIB,CL_PROG_RANLIB,g' -e 's,AC_PROG_LN_S,CL_PROG_LN_S,g' < $< > $@-t && mv $@-t $@ - -autoconf/aclocal.m4 : m4/general.m4 m4/proto.m4 m4/cc-gcc.m4 m4/as-underscore.m4 m4/ranlib.m4 m4/install.m4 m4/cp.m4 m4/ln.m4 m4/ffcall-pccstruct.m4 m4/ffcall-smallstruct.m4 m4/ffcall-ireg.m4 m4/longlong.m4 m4/cc-void.m4 m4/stdc-headers.m4 m4/getpagesize.m4 m4/mach-vm.m4 m4/openflags.m4 m4/mmap.m4 m4/mprotect.m4 m4/shm.m4 m4/ffcall-codeexec.m4 m4/libtool.m4 - { echo 'AC_INIT'; cat $(CONFIGURES_IN) | grep -v '\(AC_INIT(\|AC_OUTPUT(\|AC_CONFIG_HEADER(\)'; } > autoconf/configure.in - cd autoconf && aclocal --output=aclocal.m4 --acdir=../m4 - rm -f autoconf/configure.in +.PHONY : all configures update-gnulib gnulib-imported build-aux-update \ + check-configures config-h-in woe32-h woe32-c + +all : build-aux-update gnulib-imported aclocal.m4 check-configures \ + config-h-in woe32-h woe32-c + +GNULIB_CVS_ROOT = :pserver:anonymous@pserver.git.sv.gnu.org:/gnulib.git +GNULIB_CVS_REPOSITORY = HEAD +GNULIB_GIT = git://git.savannah.gnu.org/gnulib.git +GNULIB_CHECKOUT := gnulib +update-gnulib : + if test -d $(GNULIB_CHECKOUT); then \ + cd $(GNULIB_CHECKOUT) && \ + if test -d .git; then git pull; else cvs update -d -P; fi \ + else \ + if git --version >/dev/null 2>&1; then \ + git clone "$(GNULIB_GIT)" $(GNULIB_CHECKOUT) ; \ + else cvs -d "$(GNULIB_CVS_ROOT)" checkout -d $(GNULIB_CHECKOUT) $(GNULIB_CVS_REPOSITORY); fi \ + fi + +gnulib-imported : update-gnulib force + $(RM) configure.ac; ln -sv configure.in configure.ac + $(GNULIB_CHECKOUT)/gnulib-tool --import --source-base=gllib \ + --m4-base=glm4 --aux-dir=build-aux --no-changelog \ + longlong nocrash host-cpu-c-abi + $(RM) configure.ac + rm -fvr build-aux/.cvsignore glm4/.cvsignore gllib/ + cd glm4; \ + for f in *.m4; do \ + if test -f ../m4/$$f; then \ + echo == $$f; \ + if cmp $$f ../m4/$$f; then \ + cd ../m4; cvs rm -f $$f; cd ../glm4; \ + fi; \ + fi; \ + done + +# It is important to get ltmain.sh and libtool.m4 from the same version of +# libtool. Don't rely on what's installed in /usr/share or similar. +LIBTOOL_VERSION = 2.2 +LIBTOOL_SOURCE_FILE = libtool-$(LIBTOOL_VERSION).tar.gz +LIBTOOL_SOURCE_URL = http://ftp.gnu.org/gnu/libtool/$(LIBTOOL_SOURCE_FILE) +GNULIB_AUX=config.guess config.sub install-sh +# it is important not to have "*.m4" targets with ": force" dependencies +# because otherwise every make will rebuild all configures +build-aux-update : update-gnulib force + for f in $(GNULIB_AUX); do \ + cp -afuv $(GNULIB_CHECKOUT)/build-aux/$$f build-aux; \ + done + test -f $(LIBTOOL_SOURCE_FILE) || wget $(LIBTOOL_SOURCE_URL) + rm -rf libtool-$(LIBTOOL_VERSION) + gunzip -c < $(LIBTOOL_SOURCE_FILE) | tar xf - + cp -afuv libtool-$(LIBTOOL_VERSION)/libltdl/config/ltmain.sh build-aux/ltmain.sh + cp -afuv libtool-$(LIBTOOL_VERSION)/libltdl/m4/libtool.m4 m4/libtool.m4 + rm -rf libtool-$(LIBTOOL_VERSION) $(LIBTOOL_SOURCE_FILE) + +CURDIR=$(shell pwd) + +aclocal.m4 : $(wildcard m4/*.m4) $(wildcard glm4/*.m4) $(CONFIGURES_IN) + { echo 'AC_INIT'; cat $(CONFIGURES_IN) | grep -v '\(AC_INIT(\|AC_OUTPUT(\|AC_CONFIG_HEADERS(\|AC_CONFIG_FILES(\)'; } > configure.ac + mv configure.in configure.in-save + aclocal --output=aclocal.m4 -I `pwd`/m4 -I `pwd`/glm4 + mv configure.in-save configure.in + rm -f configure.ac + +AUTOCONF_FILES = aclocal.m4 +AUTOCONF = autoconf +AUTOCONF_CACHE = autom4te.cache +AUTOHEADER = autoheader + +SUBDIRS_CONFIG_H = avcall callback trampoline vacall \ + callback/vacall_r callback/trampoline_r +SUBDIRS_CONFIGURE = $(CURDIR) $(SUBDIRS_CONFIG_H) +CONFIGURES = $(patsubst %,%/configure,$(SUBDIRS_CONFIGURE)) +CONFIGURES_IN = $(patsubst %,%.in,$(CONFIGURES)) configures : $(CONFIGURES) -AUTOCONF_FILES = autoconf/aclocal.m4 -AUTOCONF = autoconf - -configure : configure.in $(AUTOCONF_FILES) - $(AUTOCONF) --include=autoconf - -avcall/configure : avcall/configure.in $(AUTOCONF_FILES) - cd avcall ; $(AUTOCONF) --include=../autoconf - -vacall/configure : vacall/configure.in $(AUTOCONF_FILES) - cd vacall ; $(AUTOCONF) --include=../autoconf - -trampoline/configure : trampoline/configure.in $(AUTOCONF_FILES) - cd trampoline ; $(AUTOCONF) --include=../autoconf - -callback/configure : callback/configure.in $(AUTOCONF_FILES) - cd callback ; $(AUTOCONF) --include=../autoconf - -callback/vacall_r/configure : callback/vacall_r/configure.in $(AUTOCONF_FILES) - cd callback/vacall_r ; $(AUTOCONF) --include=../../autoconf - -callback/trampoline_r/configure : callback/trampoline_r/configure.in $(AUTOCONF_FILES) - cd callback/trampoline_r ; $(AUTOCONF) --include=../../autoconf +$(CONFIGURES) : %/configure : %/configure.in $(AUTOCONF_FILES) + cd $* && $(AUTOCONF) --include=$(CURDIR) check-configures : $(CONFIGURES) set -e; for f in $(CONFIGURES); do bash -x -n $$f; done + rm -rf `find . -name $(AUTOCONF_CACHE)`; + +CONFIG_H_IN = $(patsubst %,%/config.h.in,$(SUBDIRS_CONFIG_H)) + +config-h-in : $(CONFIG_H_IN) + +$(CONFIG_H_IN) : %/config.h.in : %/configure.in $(AUTOCONF_FILES) + cd $* && $(AUTOHEADER) --include=$(CURDIR) + +woe32-h : avcall/avcall.h.msvc avcall/avcall.h.mingw32 \ + vacall/config.h.msvc vacall/config.h.mingw32 vacall/vacall.h.msvc \ + vacall/vacall.h.mingw32 \ + trampoline/config.h.msvc trampoline/config.h.mingw32 \ + callback/vacall_r/config.h.msvc callback/vacall_r/config.h.mingw32 \ + callback/vacall_r/vacall_r.h.msvc \ + callback/vacall_r/vacall_r.h.mingw32 \ + callback/trampoline_r/config.h.msvc \ + callback/trampoline_r/config.h.mingw32 + +woe32-c : avcall/avcall-i386-msvc.c avcall/avcall-i386-mingw32.c \ + vacall/vacall-i386-msvc.c vacall/vacall-i386-mingw32.c \ + callback/vacall_r/vacall-i386-msvc.c avcall/avcall.h.msvc : avcall/avcall.h.in - cd avcall ; $(MAKE) -f Makefile.devel avcall.h.msvc + cd avcall && $(MAKE) -f Makefile.devel avcall.h.msvc avcall/avcall.h.mingw32 : avcall/avcall.h.in - cd avcall ; $(MAKE) -f Makefile.devel avcall.h.mingw32 + cd avcall && $(MAKE) -f Makefile.devel avcall.h.mingw32 avcall/avcall-i386-msvc.c : avcall/avcall-i386-macro.S avcall/asmi386.sh - cd avcall ; $(MAKE) -f Makefile.devel avcall-i386-msvc.c + cd avcall && $(MAKE) -f Makefile.devel avcall-i386-msvc.c avcall/avcall-i386-mingw32.c : avcall/avcall-i386-macro.S avcall/asmi386.sh - cd avcall ; $(MAKE) -f Makefile.devel avcall-i386-mingw32.c + cd avcall && $(MAKE) -f Makefile.devel avcall-i386-mingw32.c vacall/config.h.msvc : vacall/config.h.in - cd vacall ; $(MAKE) -f Makefile.devel config.h.msvc + cd vacall && $(MAKE) -f Makefile.devel config.h.msvc vacall/config.h.mingw32 : vacall/config.h.in - cd vacall ; $(MAKE) -f Makefile.devel config.h.mingw32 + cd vacall && $(MAKE) -f Makefile.devel config.h.mingw32 -vacall/vacall.h.msvc : vacall/vacall.h.in - cd vacall ; $(MAKE) -f Makefile.devel vacall.h.msvc +vacall/vacall.h.msvc : vacall/vacall.h.in VERSION + cd vacall && $(MAKE) -f Makefile.devel vacall.h.msvc -vacall/vacall.h.mingw32 : vacall/vacall.h.in - cd vacall ; $(MAKE) -f Makefile.devel vacall.h.mingw32 +vacall/vacall.h.mingw32 : vacall/vacall.h.in VERSION + cd vacall && $(MAKE) -f Makefile.devel vacall.h.mingw32 vacall/vacall-i386-msvc.c : vacall/vacall-i386-macro.S vacall/asmi386.sh - cd vacall ; $(MAKE) -f Makefile.devel vacall-i386-msvc.c + cd vacall && $(MAKE) -f Makefile.devel vacall-i386-msvc.c vacall/vacall-i386-mingw32.c : vacall/vacall-i386-macro.S vacall/asmi386.sh - cd vacall ; $(MAKE) -f Makefile.devel vacall-i386-mingw32.c + cd vacall && $(MAKE) -f Makefile.devel vacall-i386-mingw32.c trampoline/config.h.msvc : trampoline/config.h.in - cd trampoline ; $(MAKE) -f Makefile.devel config.h.msvc + cd trampoline && $(MAKE) -f Makefile.devel config.h.msvc trampoline/config.h.mingw32 : trampoline/config.h.in - cd trampoline ; $(MAKE) -f Makefile.devel config.h.mingw32 + cd trampoline && $(MAKE) -f Makefile.devel config.h.mingw32 callback/vacall_r/config.h.msvc : callback/vacall_r/config.h.in - cd callback ; $(MAKE) -f Makefile.devel vacall_r/config.h.msvc + cd callback && $(MAKE) -f Makefile.devel vacall_r/config.h.msvc callback/vacall_r/config.h.mingw32 : callback/vacall_r/config.h.in - cd callback ; $(MAKE) -f Makefile.devel vacall_r/config.h.mingw32 + cd callback && $(MAKE) -f Makefile.devel vacall_r/config.h.mingw32 -callback/vacall_r/vacall_r.h.msvc : callback/vacall_r/vacall_r.h.in - cd callback ; $(MAKE) -f Makefile.devel vacall_r/vacall_r.h.msvc +callback/vacall_r/vacall_r.h.msvc : callback/vacall_r/vacall_r.h.in VERSION + cd callback && $(MAKE) -f Makefile.devel vacall_r/vacall_r.h.msvc -callback/vacall_r/vacall_r.h.mingw32 : callback/vacall_r/vacall_r.h.in - cd callback ; $(MAKE) -f Makefile.devel vacall_r/vacall_r.h.mingw32 +callback/vacall_r/vacall_r.h.mingw32 : callback/vacall_r/vacall_r.h.in VERSION + cd callback && $(MAKE) -f Makefile.devel vacall_r/vacall_r.h.mingw32 callback/vacall_r/vacall-i386-msvc.c : callback/vacall_r/vacall-i386-macro.S callback/vacall_r/asmi386.sh - cd callback ; $(MAKE) -f Makefile.devel vacall_r/vacall-i386-msvc.c + cd callback && $(MAKE) -f Makefile.devel vacall_r/vacall-i386-msvc.c callback/vacall_r/vacall-i386-mingw32.c : callback/vacall_r/vacall-i386-macro.S callback/vacall_r/asmi386.sh - cd callback ; $(MAKE) -f Makefile.devel vacall_r/vacall-i386-mingw32.c + cd callback && $(MAKE) -f Makefile.devel vacall_r/vacall-i386-mingw32.c callback/trampoline_r/config.h.msvc : callback/trampoline_r/config.h.in - cd callback ; $(MAKE) -f Makefile.devel trampoline_r/config.h.msvc + cd callback && $(MAKE) -f Makefile.devel trampoline_r/config.h.msvc callback/trampoline_r/config.h.mingw32 : callback/trampoline_r/config.h.in - cd callback ; $(MAKE) -f Makefile.devel trampoline_r/config.h.mingw32 + cd callback && $(MAKE) -f Makefile.devel trampoline_r/config.h.mingw32 COMPILERS="cc -O" "gcc -freg-struct-return" "gcc -fpcc-struct-return" multibuild : force for compiler in $(COMPILERS) ; do \