fix parallel builds

This commit is contained in:
Daniel Kochmański 2017-01-02 22:06:49 +01:00
parent adbedd31de
commit cb3294fc7b
5 changed files with 41 additions and 37 deletions

View file

@ -91,6 +91,9 @@ c/ecl/external.h: $(top_srcdir)/h/external.h
test -d c/ecl || mkdir c/ecl
sed 's,__declspec(dllimport),,g' $(top_srcdir)/h/external.h > $@
ecl/external.h: c/ecl/external.h c/ecl/external.h
cp -rf $(srcdir)/h/*.h $(srcdir)/h/impl ecl/
bin/$(ECL): $(ECL_MIN) compile.lsp ecl/external.h build-stamp $(top_srcdir)/lsp/*.lsp $(top_srcdir)/clos/*.lsp $(top_srcdir)/*cmp/*.lsp
if [ -f CROSS-COMPILER ]; then \
./CROSS-COMPILER compile; \
@ -135,17 +138,17 @@ libeclgmp.a:
fi
# final objects archive
libeclmin.a: libeclgmp.a libeclatomic.a libeclgc.a libeclffi.a $(OFILES) @EXTRA_OBJS@ c/all_symbols.o c/all_symbols2.o lsp/config.lsp $(ECL_CMPDIR)/cmpdefs.lsp ecl/external.h
libeclmin.a: libeclgmp.a libeclatomic.a libeclgc.a libeclffi.a lsp/config.lsp $(ECL_CMPDIR)/cmpdefs.lsp ecl/external.h
@echo "Building $@..."
cd c; $(MAKE)
$(ECL_MIN): $(LIBRARIES) .gdbinit libeclmin.a c/cinit.o
$(ECL_MIN): $(LIBRARIES) .gdbinit libeclmin.a
@echo "Building $@..."
if [ -f CROSS-COMPILER ]; then \
touch $@; \
else \
$(CC) $(LDFLAGS) -o $@ \
c/cinit.o c/all_symbols.o \
cinit.o c/all_symbols.o \
-L./ libeclmin.a \
$(CORE_LIBS) $(FASL_LIBS) $(LIBS);\
fi

10
src/aclocal.m4 vendored
View file

@ -247,7 +247,7 @@ THREAD_CFLAGS=''
THREAD_LIBS=''
THREAD_GC_FLAGS='--enable-threads=posix'
INSTALL_TARGET='install'
THREAD_OBJ="$THREAD_OBJ c/threads/process c/threads/queue c/threads/mutex c/threads/condition_variable c/threads/semaphore c/threads/barrier c/threads/mailbox"
THREAD_OBJ="$THREAD_OBJ threads/process threads/queue threads/mutex threads/condition_variable threads/semaphore threads/barrier threads/mailbox"
clibs='-lm'
SONAME=''
SONAME_LDFLAGS=''
@ -923,7 +923,7 @@ AC_CHECK_FUNC( [pthread_rwlock_init], [
AC_DEFINE([HAVE_POSIX_RWLOCK], [], [HAVE_POSIX_RWLOCK])
], [])
], [])
THREAD_OBJ="$THREAD_OBJ c/threads/rwlock"
THREAD_OBJ="$THREAD_OBJ threads/rwlock"
])
@ -1040,7 +1040,7 @@ if test "${enable_boehm}" = auto -o "${enable_boehm}" = system; then
fi
else
FASL_LIBS="${FASL_LIBS} -lgc"
EXTRA_OBJS="${EXTRA_OBJS} c/alloc_2.${OBJEXT}"
EXTRA_OBJS="${EXTRA_OBJS} alloc_2.${OBJEXT}"
AC_DEFINE(GBC_BOEHM, [1], [Use Boehm's garbage collector])
fi
fi
@ -1071,7 +1071,7 @@ if test "${enable_boehm}" = "included"; then
ECL_BOEHM_GC_HEADER='ecl/gc/gc.h'
SUBDIRS="${SUBDIRS} gc"
CORE_LIBS="-leclgc ${CORE_LIBS}"
EXTRA_OBJS="${EXTRA_OBJS} c/alloc_2.${OBJEXT}"
EXTRA_OBJS="${EXTRA_OBJS} alloc_2.${OBJEXT}"
if test "${enable_shared}" = "no"; then
LIBRARIES="${LIBRARIES} ${LIBPREFIX}eclgc.${LIBEXT}"
fi
@ -1144,7 +1144,7 @@ if test "${enable_libffi}" = "included"; then
ECL_LIBFFI_HEADER='ecl/ffi.h'
SUBDIRS="${SUBDIRS} libffi"
CORE_LIBS="-leclffi ${CORE_LIBS}"
EXTRA_OBJS="${EXTRA_OBJS} c/alloc_2.${OBJEXT}"
EXTRA_OBJS="${EXTRA_OBJS} alloc_2.${OBJEXT}"
if test "${enable_shared}" = "no"; then
LIBRARIES="${LIBRARIES} ${LIBPREFIX}eclffi.${LIBEXT}"
fi

View file

@ -12,9 +12,9 @@ VPATH = @srcdir@
#
CC = @CC@
TRUE_CC = $(CC)
CFLAGS = -Werror -Wno-error=shift-count-overflow \
-I. -I@true_builddir@ -I$(srcdir) -I../ecl/gc -DECL_BUILD -DECL_API \
-DECL_NO_LEGACY @CPPFLAGS@ @CFLAGS@ @ECL_CFLAGS@ -c
CFLAGS = -Wall -I. -I@true_builddir@ -I$(srcdir) -I../ecl/gc \
-DECL_BUILD -DECL_API -DECL_NO_LEGACY @CPPFLAGS@ @CFLAGS@ \
@ECL_CFLAGS@ -c
# The following flags could be added and used by GCC
# -Wall -W -Wfloat-equal -Wundef -Wendif-labels -Wpointer-arith -Wcast-align \
@ -40,9 +40,9 @@ includedir=@includedir@
# Files
HDIR = ../ecl
HFILES = $(HDIR)/config.h $(HDIR)/ecl.h $(HDIR)/ecl-cmp.h \
$(HDIR)/object.h $(HDIR)/cs.h $(HDIR)/stacks.h \
$(HDIR)/external.h $(HDIR)/cons.h $(HDIR)/legacy.h \
HFILES = $(HDIR)/config.h $(HDIR)/ecl.h $(HDIR)/ecl-cmp.h \
$(HDIR)/object.h $(HDIR)/cs.h $(HDIR)/stacks.h \
$(HDIR)/external.h $(HDIR)/cons.h $(HDIR)/legacy.h \
$(HDIR)/number.h $(HDIR)/page.h
OBJS = main.o symbol.o package.o cons.o list.o apply.o eval.o \
interpreter.o compiler.o disassembler.o instance.o gfun.o \
@ -74,20 +74,18 @@ OBJS = main.o symbol.o package.o cons.o list.o apply.o eval.o \
.SUFFIXES: .c .o .d .s
.PHONY: all
all: $(DPP) ../libeclmin.a ../cinit.o
all: $(DPP) ../libeclmin.a ../cinit.o
.d.c: $(DPP)
if test -f ../CROSS-DPP ; then ../CROSS-DPP $< $@ ; else $(DPP) $< $@ ; fi
.d.o: $(DPP)
@echo "Compiling $@..."
if test -f ../CROSS-DPP ; then ../CROSS-DPP $< $@.c ; else $(DPP) $< $@.c ; fi
$(CC) -DECLDIR="\"@ecldir@\"" $(CFLAGS) -o $@ $@.c
.c.o: $(HFILES)
@echo "Compiling $@..."
$(CC) -DECLDIR="\"@ecldir@\"" $(CFLAGS) -o $@ $<
.d.s: $(HFILES)
if test -f ../CROSS-DPP ; then ../CROSS-DPP $< $@.c ; else $(DPP) $< $@.c ; fi
$(CC) -DECLDIR="\"@ecldir@\"" $(CFLAGS) -S -o $@ $@.c
# .d.s: $(HFILES)
# if test -f ../CROSS-DPP ; then ../CROSS-DPP $< $@.c ; else $(DPP) $< $@.c ; fi
# $(CC) -DECLDIR="\"@ecldir@\"" $(CFLAGS) -S -o $@ $@.c
../libeclmin.a: $(OBJS) all_symbols.o all_symbols2.o
$(RM) $@
@ -95,7 +93,7 @@ all: $(DPP) ../libeclmin.a ../cinit.o
$(RANLIB) $@
clean:
$(RM) $(DPP) *.c *.h $(OBJS) all_symbols.o all_symbols2.o ../libecl.a cinit.o core a.out tmp.c
$(RM) $(DPP) *.c *.h $(OBJS) all_symbols.o all_symbols2.o ../libecl.a ../cinit.o core a.out tmp.c
# Build rules

24
src/configure vendored
View file

@ -3020,7 +3020,8 @@ boehm_configure_flags=""
TARGETS='bin/ecl$(EXE)'
LSP_FEATURES='*features*'
SUBDIRS=c
LSP_FEATURES='*features*'
# Make sure we can run config.sub.
@ -4875,7 +4876,7 @@ THREAD_CFLAGS=''
THREAD_LIBS=''
THREAD_GC_FLAGS='--enable-threads=posix'
INSTALL_TARGET='install'
THREAD_OBJ="$THREAD_OBJ c/threads/process c/threads/queue c/threads/mutex c/threads/condition_variable c/threads/semaphore c/threads/barrier c/threads/mailbox"
THREAD_OBJ="$THREAD_OBJ threads/process threads/queue threads/mutex threads/condition_variable threads/semaphore threads/barrier threads/mailbox"
clibs='-lm'
SONAME=''
SONAME_LDFLAGS=''
@ -5638,7 +5639,7 @@ else
fi
EXTRA_OBJS="${EXTRA_OBJS} c/big.o"
EXTRA_OBJS="${EXTRA_OBJS} big.o"
if test "x${with_system_gmp}" = "xno" ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring included GMP library:" >&5
$as_echo "$as_me: Configuring included GMP library:" >&6;}
@ -5893,7 +5894,7 @@ fi
fi
THREAD_OBJ="$THREAD_OBJ c/threads/rwlock"
THREAD_OBJ="$THREAD_OBJ threads/rwlock"
boehm_configure_flags="${boehm_configure_flags} ${THREAD_GC_FLAGS}"
for k in $THREAD_OBJ; do EXTRA_OBJS="$EXTRA_OBJS ${k}.${OBJEXT}"; done
@ -6160,7 +6161,7 @@ $as_echo "${system_boehm} " >&6; }
fi
else
FASL_LIBS="${FASL_LIBS} -lgc"
EXTRA_OBJS="${EXTRA_OBJS} c/alloc_2.${OBJEXT}"
EXTRA_OBJS="${EXTRA_OBJS} alloc_2.${OBJEXT}"
$as_echo "#define GBC_BOEHM 1" >>confdefs.h
@ -6189,7 +6190,7 @@ $as_echo "$as_me: Configuring included Boehm GC library:" >&6;}
ECL_BOEHM_GC_HEADER='ecl/gc/gc.h'
SUBDIRS="${SUBDIRS} gc"
CORE_LIBS="-leclgc ${CORE_LIBS}"
EXTRA_OBJS="${EXTRA_OBJS} c/alloc_2.${OBJEXT}"
EXTRA_OBJS="${EXTRA_OBJS} alloc_2.${OBJEXT}"
if test "${enable_shared}" = "no"; then
LIBRARIES="${LIBRARIES} ${LIBPREFIX}eclgc.${LIBEXT}"
fi
@ -6323,7 +6324,7 @@ $as_echo "$as_me: Configuring included libffi library:" >&6;}
ECL_LIBFFI_HEADER='ecl/ffi.h'
SUBDIRS="${SUBDIRS} libffi"
CORE_LIBS="-leclffi ${CORE_LIBS}"
EXTRA_OBJS="${EXTRA_OBJS} c/alloc_2.${OBJEXT}"
EXTRA_OBJS="${EXTRA_OBJS} alloc_2.${OBJEXT}"
if test "${enable_shared}" = "no"; then
LIBRARIES="${LIBRARIES} ${LIBPREFIX}eclffi.${LIBEXT}"
fi
@ -9566,7 +9567,7 @@ if test "${with_tcp}" = "yes"; then
$as_echo "#define TCP 1" >>confdefs.h
EXTRA_OBJS="${EXTRA_OBJS} c/tcp.${OBJEXT}"
EXTRA_OBJS="${EXTRA_OBJS} tcp.${OBJEXT}"
LSP_FEATURES="(cons :wants-sockets ${LSP_FEATURES})"
@ -9692,13 +9693,13 @@ $as_echo "#define ECL_UNICODE 21" >>confdefs.h
CHAR_CODE_LIMIT=1114112
ECL_CHARACTER=$ECL_INT32_T
EXTRA_OBJS="$EXTRA_OBJS c/unicode/ucd.o c/unicode/ucd-0000.o c/unicode/ucd-0016.o c/unicode/ucd-0032.o c/unicode/ucd-0048.o c/unicode/ucd-0064.o c/unicode/ucd-0080.o c/unicode/ucd-0096.o"
EXTRA_OBJS="$EXTRA_OBJS unicode/ucd.o unicode/ucd-0000.o unicode/ucd-0016.o unicode/ucd-0032.o unicode/ucd-0048.o unicode/ucd-0064.o unicode/ucd-0080.o unicode/ucd-0096.o"
fi
if test "${with_unicode_names}" = "yes"; then
$as_echo "#define ECL_UNICODE_NAMES 1" >>confdefs.h
EXTRA_OBJS="$EXTRA_OBJS c/unicode/ucd_names_char.o c/unicode/ucd_names_codes.o c/unicode/ucd_names_pair.o c/unicode/ucd_names_str.o"
EXTRA_OBJS="$EXTRA_OBJS unicode/ucd_names_char.o unicode/ucd_names_codes.o unicode/ucd_names_pair.o unicode/ucd_names_str.o"
fi
else
CHAR_CODE_LIMIT=256
@ -9726,7 +9727,7 @@ $as_echo "#define ECL_RELATIVE_PACKAGE_NAMES 1" >>confdefs.h
fi
ac_config_files="$ac_config_files bare.lsp lsp/load.lsp clos/load.lsp cmp/load.lsp ../Makefile Makefile doc/Makefile doc/ecl.man doc/ecl-config.man ecl/configpre.h:h/config.h.in ecl/configpre-int.h:h/config-internal.h.in bin/ecl-config.pre:util/ecl-config lsp/config.lsp:lsp/config.lsp.in compile.pre:compile.lsp.in cmp/cmpdefs.pre:cmp/cmpdefs.lsp tests/config.lsp tests/Makefile"
ac_config_files="$ac_config_files bare.lsp lsp/load.lsp clos/load.lsp cmp/load.lsp ../Makefile Makefile c/Makefile doc/Makefile doc/ecl.man doc/ecl-config.man ecl/configpre.h:h/config.h.in ecl/configpre-int.h:h/config-internal.h.in bin/ecl-config.pre:util/ecl-config lsp/config.lsp:lsp/config.lsp.in compile.pre:compile.lsp.in cmp/cmpdefs.pre:cmp/cmpdefs.lsp tests/config.lsp tests/Makefile"
ac_config_headers="$ac_config_headers ecl/config.h:ecl/configpre.h"
@ -10430,6 +10431,7 @@ do
"cmp/load.lsp") CONFIG_FILES="$CONFIG_FILES cmp/load.lsp" ;;
"../Makefile") CONFIG_FILES="$CONFIG_FILES ../Makefile" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"c/Makefile") CONFIG_FILES="$CONFIG_FILES c/Makefile" ;;
"doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
"doc/ecl.man") CONFIG_FILES="$CONFIG_FILES doc/ecl.man" ;;
"doc/ecl-config.man") CONFIG_FILES="$CONFIG_FILES doc/ecl-config.man" ;;

View file

@ -329,7 +329,7 @@ AC_SUBST(SHARED_LDFLAGS) dnl Flags for shared libraries linker
AC_SUBST(BUNDLE_LDFLAGS) dnl Flags for FASL files linker
AC_SUBST(EXTRA_OBJS) dnl Extra *.o files to be compiled into libecl.a
AC_SUBST(TARGETS, ['bin/ecl$(EXE)'])dnl Versions of ECL to be built
AC_SUBST(SUBDIRS, []) dnl Subdirectories that make should process
AC_SUBST(SUBDIRS, [c]) dnl Subdirectories that make should process
AC_SUBST(LIBRARIES, []) dnl GMP, Boehm's GC, etc
AC_SUBST(LSP_LIBRARIES) dnl Libraries produced by lisp translator
AC_SUBST(LSP_FEATURES, ['*features*']) dnl Symbols to add to *FEATURES* for conditional compilation
@ -421,7 +421,7 @@ fi
dnl ----------------------------------------------------------------------
dnl Configure local GMP if needed
AC_SUBST(ECL_GMP_HEADER)
EXTRA_OBJS="${EXTRA_OBJS} c/big.o"
EXTRA_OBJS="${EXTRA_OBJS} big.o"
if test "x${with_system_gmp}" = "xno" ; then
AC_MSG_NOTICE(Configuring included GMP library:)
test -d gmp && rm -rf gmp
@ -809,7 +809,7 @@ if test "${with_tcp}" = "builtin"; then
fi
if test "${with_tcp}" = "yes"; then
AC_DEFINE(TCP, [1], [Network streams])
EXTRA_OBJS="${EXTRA_OBJS} c/tcp.${OBJEXT}"
EXTRA_OBJS="${EXTRA_OBJS} tcp.${OBJEXT}"
ECL_ADD_LISP_MODULE([sockets])
LIBS="${LIBS} ${TCPLIBS}"
fi
@ -879,11 +879,11 @@ if test "x${enable_unicode}" != "xno"; then
AC_DEFINE([ECL_UNICODE], [21], [Support for Unicode])
CHAR_CODE_LIMIT=1114112
ECL_CHARACTER=$ECL_INT32_T
EXTRA_OBJS="$EXTRA_OBJS c/unicode/ucd.o c/unicode/ucd-0000.o c/unicode/ucd-0016.o c/unicode/ucd-0032.o c/unicode/ucd-0048.o c/unicode/ucd-0064.o c/unicode/ucd-0080.o c/unicode/ucd-0096.o"
EXTRA_OBJS="$EXTRA_OBJS unicode/ucd.o unicode/ucd-0000.o unicode/ucd-0016.o unicode/ucd-0032.o unicode/ucd-0048.o unicode/ucd-0064.o unicode/ucd-0080.o unicode/ucd-0096.o"
fi
if test "${with_unicode_names}" = "yes"; then
AC_DEFINE([ECL_UNICODE_NAMES], [1], [Link in the database of Unicode names])
EXTRA_OBJS="$EXTRA_OBJS c/unicode/ucd_names_char.o c/unicode/ucd_names_codes.o c/unicode/ucd_names_pair.o c/unicode/ucd_names_str.o"
EXTRA_OBJS="$EXTRA_OBJS unicode/ucd_names_char.o unicode/ucd_names_codes.o unicode/ucd_names_pair.o unicode/ucd_names_str.o"
fi
else
CHAR_CODE_LIMIT=256
@ -916,6 +916,7 @@ AC_CONFIG_FILES([
cmp/load.lsp
../Makefile
Makefile
c/Makefile
doc/Makefile
doc/ecl.man
doc/ecl-config.man