- config/hpux/dir.cf
* config/hpux/global.cf
- config/hpux/install.cf
- config/darwin/dir.cf
* config/darwin/global.cf
- config/darwin/install.cf
- config/dos/dir.cf
* config/dos/global.cf
- config/dos/install.cf
* config/win/global.cf
- config/win/install.cf
- config/win/dir.cf
- config/linux/dir.cf
* config/linux/global.cf
- config/linux/install.cf
- config/os2/dir.cf
* config/os2/global.cf
- config/os2/install.cf
- config/sunos/dir.cf
* config/sunos/global.cf
- config/sunos/install.cf
- config/bsd/dir.cf
* config/bsd/global.cf
- config/bsd/install.cf
- config/wce/dir.cf
* config/wce/global.cf
- config/wce/install.cf
* Minor change in dos specific dirbase:: checks. Should be
equivalent.
* darwin/gcc was running RANLIB on install. I've removed
this for now and if ranlib is required on Darwin, it
should be readded to gcc.cf.
* config/os2/gcc.cf
* Changed to not rely on LIB_FILE_OS.
* config/dir.cf
+ config/dirsh.cf
* config/global.cf
+ config/globsh.cf
* config/install.cf
+ config/instsh.cf
! Fixed NT vs dos shell detection. (hopefully)
+ Shell dependent logic merged and moved into new *_sh.cf
files. The filename is ugly, but couldn't yet find a better one.
This means a great deal of redundancy is now removed, plus
now cross-platform combinations aren't limited by missing
shell support. New shells can now be added with much less work.
; Please test, it's possible that I made some mistakes along the way,
and haven't tested bash yet. Nor OS/2 obviously.
89 lines
1.7 KiB
CFEngine3
89 lines
1.7 KiB
CFEngine3
#
|
|
# $Id$
|
|
#
|
|
|
|
ifneq ($(HB_ARCHITECTURE),)
|
|
ifneq ($(HB_COMPILER),)
|
|
|
|
include $(TOP)$(ROOT)config/global.cf
|
|
|
|
# these make versions does not work correctly with
|
|
# parallel execution rules below
|
|
OLD_MAKE := $(MAKE_VERSION:3.7%=YES)
|
|
OLD_MAKE := $(OLD_MAKE:3.80%=YES)
|
|
|
|
ifeq ($(OLD_MAKE),YES)
|
|
ifeq ($(PM),) # Only traverse directories if not compiling a specific module
|
|
include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/dirsh.cf
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(DIR_RULE),)
|
|
|
|
# NOTE: The empty line directly before 'endef' HAVE TO exist!
|
|
# It causes that every commands will be separated by LF
|
|
define dir_mk
|
|
$(MK) -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) -C $(@:.clean=) clean
|
|
|
|
$(DIRS_INST) ::
|
|
+$(MK) -C $(@:.inst=) install _HB_BLD=yes
|
|
|
|
$(DIRS_MK) ::
|
|
+$(MK) -C $(@)
|
|
|
|
endif
|
|
|
|
|
|
ifneq ($(HB_POSTINST),)
|
|
install::
|
|
+$(HB_POSTINST)
|
|
endif
|
|
|
|
endif
|
|
endif
|