diff --git a/ChangeLog b/ChangeLog index 25bd64ed..67ca7446 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +2009-02-23 Nicola Pero + + * configure.ac (GNUSTEP_MAKE_PARALLEL_BUILDING): Enable parallel + building support by default. From now on, you only need to use + eg 'make -j 2' to build something using parallel building. Updated + documentation. + * configure: Regenerated. + + * Instance/application.make (.PHONY): Added + internal-app-run-compile-submake and internal-app-compile. + * Instance/bundle.make (.PHONY): Similar change. + * Instance/ctool.make (.PHONY): Similar change. + * Instance/framework.make (.PHONY): Similar change. + * Instance/library.make (.PHONY): Similar change. + * Instance/objc.make (.PHONY): Similar change. + * Instance/palette.make (.PHONY): Same change. + * Instance/service.make (.PHONY): Same change. + * Instance/subproject.make (.PHONY): Same change. + * Instance/tool.make (.PHONY): Same change. + 2009-02-16 Nicola Pero Extended experimental parallel building support to most project diff --git a/Instance/application.make b/Instance/application.make index 54567471..6a2ee3b0 100644 --- a/Instance/application.make +++ b/Instance/application.make @@ -52,7 +52,9 @@ endif internal-app-install_ \ internal-app-uninstall_ \ internal-app-copy_into_dir \ - internal-application-build-template + internal-application-build-template \ + internal-app-run-compile-submake \ + internal-app-compile # # Determine where to install. By default, install into GNUSTEP_APPS. diff --git a/Instance/bundle.make b/Instance/bundle.make index 6efac741..ea38df46 100644 --- a/Instance/bundle.make +++ b/Instance/bundle.make @@ -56,7 +56,9 @@ include $(GNUSTEP_MAKEFILES)/Instance/Shared/headers.make internal-bundle-install_ \ internal-bundle-uninstall_ \ internal-bundle-copy_into_dir \ - build-bundle + build-bundle \ + internal-bundle-run-compile-submake \ + internal-bundle-compile # In some cases, a bundle without any object file in it is useful - to # just store some resources which can be loaded comfortably using the diff --git a/Instance/ctool.make b/Instance/ctool.make index f70d14d0..6787eaca 100644 --- a/Instance/ctool.make +++ b/Instance/ctool.make @@ -50,7 +50,8 @@ endif .PHONY: internal-ctool-all_ \ internal-ctool-install_ \ - internal-ctool-uninstall_ + internal-ctool-uninstall_ \ + internal-ctool-compile # Override the default with just the minimal C libs required to link ALL_LIBS = \ diff --git a/Instance/framework.make b/Instance/framework.make index f73da669..d6bc8c3a 100644 --- a/Instance/framework.make +++ b/Instance/framework.make @@ -37,7 +37,9 @@ endif internal-framework-install_ \ internal-framework-distclean \ internal-framework-clean \ - internal-framework-uninstall_ + internal-framework-uninstall_ \ + internal-framework-run-compile-submake \ + internal-framework-compile # The name of the framework is in the FRAMEWORK_NAME variable. # The list of framework resource files are in xxx_RESOURCE_FILES diff --git a/Instance/library.make b/Instance/library.make index 98176916..b331c847 100644 --- a/Instance/library.make +++ b/Instance/library.make @@ -51,7 +51,8 @@ include $(GNUSTEP_MAKEFILES)/Instance/Shared/headers.make internal-library-install_ \ internal-library-uninstall_ \ internal-install-lib \ - internal-install-dirs + internal-install-dirs \ + internal-library-compile # This is the directory where the libs get installed. This should *not* # include the target arch, os directory or library_combo. diff --git a/Instance/objc.make b/Instance/objc.make index b5833712..3b379495 100644 --- a/Instance/objc.make +++ b/Instance/objc.make @@ -32,7 +32,8 @@ endif .PHONY: internal-objc_program-all_ \ internal-objc_program-install_ \ - internal-objc_program-uninstall_ + internal-objc_program-uninstall_ \ + internal-objc_program-compile # This is the directory where the objc programs get installed. If you # don't specify a directory they will get installed in the Tools diff --git a/Instance/palette.make b/Instance/palette.make index fbd49e42..5f942a4d 100644 --- a/Instance/palette.make +++ b/Instance/palette.make @@ -46,7 +46,9 @@ endif .PHONY: internal-palette-all_ \ internal-palette-install_ \ internal-palette-uninstall_ \ - internal-palette-copy_into_dir + internal-palette-copy_into_dir \ + internal-palette-run-compile-submake \ + internal-palette-compile # On windows, this is unfortunately required. ifeq ($(BUILD_DLL), yes) diff --git a/Instance/service.make b/Instance/service.make index b401e3ae..937f357d 100644 --- a/Instance/service.make +++ b/Instance/service.make @@ -37,7 +37,9 @@ endif internal-service-install_ \ internal-service-uninstall_ \ internal-service-copy_into_dir \ - service-resource-files + service-resource-files \ + internal-service-run-compile-submake \ + internal-service-compile # Libraries that go before the GUI libraries ALL_SERVICE_LIBS = \ diff --git a/Instance/subproject.make b/Instance/subproject.make index 206f38fc..4779cf08 100644 --- a/Instance/subproject.make +++ b/Instance/subproject.make @@ -26,7 +26,8 @@ endif .PHONY: internal-subproject-all_ \ internal-subproject-install_ \ - internal-subproject-uninstall_ + internal-subproject-uninstall_ \ + internal-subproject-compile # # Compilation targets diff --git a/Instance/tool.make b/Instance/tool.make index ad5ef4e0..aa5c5d01 100644 --- a/Instance/tool.make +++ b/Instance/tool.make @@ -38,7 +38,8 @@ endif .PHONY: internal-tool-all_ \ internal-tool-install_ \ internal-tool-uninstall_ \ - internal-tool-copy_into_dir + internal-tool-copy_into_dir \ + internal-tool-compile # This is the directory where the tools get installed. If you don't specify a # directory they will get installed in the GNUstep Local Root. diff --git a/configure b/configure index 9f09c6b3..be3ddd66 100755 --- a/configure +++ b/configure @@ -1430,14 +1430,15 @@ Optional Features: gain is quite small, so you probably don't want to strip makefiles. ---enable-parallel-building - Enable experimental support for parallel building. You can request - parallel building of a project by using the '-j N' flag for make - (where N is a number, eg, '-j 4'). This is normally ignored by - gnustep-make which by default does not support parallel building. - If you enable support for parallel building here, gnustep-make - will parallelize the compilation step. This feature is - experimental. Please only use it for testing it. +--disable-parallel-building + Disable support for parallel building. Normally this is enabled + and you can request parallel building of a project by using the '-j N' + flag for make (where N is a number, eg, '-j 4'). If you know that + you are never going to be using parallel building, you can disable + parallel building here - which will ignore all '-j N' flags, and + also avoid executing a 'compile' submake invocation - resulting + in slightly faster non-parallel builds, but making it impossible + to do parallel builds. Optional Packages: @@ -6277,7 +6278,7 @@ echo $ECHO_N "checking if we should enable support for parallel building... $ECH if test "${enable_parallel_building+set}" = set; then enableval=$enable_parallel_building; ac_cv_parallel_building=$enableval else - ac_cv_parallel_building="no" + ac_cv_parallel_building="yes" fi diff --git a/configure.ac b/configure.ac index ed6f5567..3989bd85 100644 --- a/configure.ac +++ b/configure.ac @@ -1531,17 +1531,18 @@ AC_SUBST(GNUSTEP_STRIP_MAKEFILES) AC_MSG_CHECKING([if we should enable support for parallel building]) AC_ARG_ENABLE(parallel-building, [ ---enable-parallel-building - Enable experimental support for parallel building. You can request - parallel building of a project by using the '-j N' flag for make - (where N is a number, eg, '-j 4'). This is normally ignored by - gnustep-make which by default does not support parallel building. - If you enable support for parallel building here, gnustep-make - will parallelize the compilation step. This feature is - experimental. Please only use it for testing it. -], +--disable-parallel-building + Disable support for parallel building. Normally this is enabled + and you can request parallel building of a project by using the '-j N' + flag for make (where N is a number, eg, '-j 4'). If you know that + you are never going to be using parallel building, you can disable + parallel building here - which will ignore all '-j N' flags, and + also avoid executing a 'compile' submake invocation - resulting + in slightly faster non-parallel builds, but making it impossible + to do parallel builds. +], ac_cv_parallel_building=$enableval, - ac_cv_parallel_building="no") + ac_cv_parallel_building="yes") if test "$ac_cv_parallel_building" = "yes"; then AC_MSG_RESULT(yes);