Files
harbour-core/harbour/config/dir.cf
Viktor Szakats 6969cc0123 2009-08-15 11:21 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
- make_gnu.sh
  * config/linux/global.cf
    - Deleted. The -fPIC logic is moved to linux/global.cf but it's
      incomplete yet, some comments were added there.

  * contrib/hbcurl/hbcurl.hbc
  + contrib/hbcurl/hbcurls.hbc
    + Added separate .hbc file for static mode hbcurl lib.
      This replaces former HB_CURL_STATIC setting.

  * contrib/hbcurl/Makefile
  * external/Makefile
  * contrib/Makefile
    % Minor optimization to DIRS var.
      (in few cases it wasn't init to empty with := operator)

  + contrib/hbtip/hbtipssl.hbc
  + contrib/hbtip/hbtipssl
  + contrib/hbtip/hbtipssl/Makefile
  * contrib/hbtip/Makefile
    + Now building separate SSL enabled hbtip lib in case HB_HAS_OPENSSL.
    + Added separate .hbc file for SSL enabled hbtip lib, which also
      pulls hbssl libs and dependencies.

  * config/prg.cf
  * config/lib.cf
  * config/bin.cf
  * config/globsh.cf
  * config/dir.cf
  * config/c.cf
  * config/header.cf
  * config/doc.cf
  * config/instsh.cf
  * config/dirsh.cf
    % Optimized remaining (more delicate) logic to use :=
      instead of = assigment operator.
      At this point there is nothing left to optimize in this
      regard.
    ; I didn't restest parallel build and BISON related rules,
      please do so, I hope they aren't broken. Or in case you
      notice anything strange please shout.

  * config/global.cf
    + Added link to GNU Make NEWS files which describes at which release
      some features were added.

  * config/dos/watcom.cf
  * config/win/watcom.cf
  * config/os2/watcom.cf
    ! Synced special watcom CC_RULEs with recent changes to global CC_RULE.
2009-08-15 09:37:39 +00:00

91 lines
1.8 KiB
CFEngine3

#
# $Id$
#
include $(TOP)$(ROOT)config/global.cf
ifneq ($(HB_ARCHITECTURE),)
ifneq ($(HB_COMPILER),)
ifeq ($(HB_HOST_ARCH),dos)
# do not use rules for parallel processing in DOS
JOB_SRV := NO
else
# these make versions does not work correctly with
# parallel execution rules below
JOB_SRV := $(MAKE_VERSION:3.7%=NO)
JOB_SRV := $(JOB_SRV:3.80%=NO)
endif
ifeq ($(JOB_SRV),NO)
include $(TOP)$(ROOT)config/dirsh.cf
endif
ifeq ($(DIR_RULE),)
# NOTE: The empty line directly before 'endef' HAVE TO exist!
# It causes that every command will be separated by LF
define dir_mk
@$(MK) $(MKFLAGS) -C $(dir) $@
endef
DIRS_PURE := $(filter-out {%},$(subst {, {,$(DIRS)))
DIRS_DEP := $(filter-out $(DIRS_PURE),$(DIRS))
DIRS_MK := $(foreach d, $(DIRS_PURE), $(if $(wildcard $(d)/Makefile),$(d),))
DIR_RULE := $(foreach dir, $(DIRS_MK), $(dir_mk))
MULTI_DEPS := yes
else
DIRS := $(filter-out {%},$(subst {, {,$(DIRS)))
MULTI_DEPS := no
endif
all : first
ifneq ($(MULTI_DEPS),yes)
first clean install::
+$(DIR_RULE)
else
DIRS_CLEAN := $(foreach dir, $(DIRS_MK), $(dir).clean)
DIRS_INST := $(foreach dir, $(DIRS_MK), $(dir).inst)
ifneq ($(_HB_BLD),yes)
first :: $(DIRS_MK)
endif
install :: $(DIRS_INST)
clean :: $(DIRS_CLEAN)
comma := ,
define dep_rule
$(subst $(comma),$(2) ,$(subst },$(2),$(subst {,$(2)::|,$(1))))
endef
$(foreach dep, $(DIRS_DEP), $(eval $(call dep_rule,$(dep),.clean)))
$(foreach dep, $(DIRS_DEP), $(eval $(call dep_rule,$(dep),.inst)))
$(foreach dep, $(DIRS_DEP), $(eval $(call dep_rule,$(dep),)))
$(DIRS_CLEAN) ::
+@$(MK) $(MKFLAGS) -C $(@:.clean=) clean
$(DIRS_INST) ::
+@$(MK) $(MKFLAGS) -C $(@:.inst=) install _HB_BLD=yes
$(DIRS_MK) ::
+@$(MK) $(MKFLAGS) -C $(@)
endif
ifneq ($(HB_POSTINST),)
install::
+$(HB_POSTINST)
endif
endif
endif