From cb3294fc7bec0505285c3318a18990371b3f32f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Mon, 2 Jan 2017 22:06:49 +0100 Subject: [PATCH] fix parallel builds --- src/Makefile.in | 9 ++++++--- src/aclocal.m4 | 10 +++++----- src/c/Makefile.in | 24 +++++++++++------------- src/configure | 24 +++++++++++++----------- src/configure.ac | 11 ++++++----- 5 files changed, 41 insertions(+), 37 deletions(-) diff --git a/src/Makefile.in b/src/Makefile.in index 87e821bb3..2751c5917 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -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 diff --git a/src/aclocal.m4 b/src/aclocal.m4 index b10e2077e..e8f4b8e76 100644 --- a/src/aclocal.m4 +++ b/src/aclocal.m4 @@ -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 diff --git a/src/c/Makefile.in b/src/c/Makefile.in index cea9a5875..efa3a04e4 100644 --- a/src/c/Makefile.in +++ b/src/c/Makefile.in @@ -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 diff --git a/src/configure b/src/configure index 29e0ef975..54c3af9ff 100755 --- a/src/configure +++ b/src/configure @@ -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" ;; diff --git a/src/configure.ac b/src/configure.ac index 366560450..6a407bba0 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -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