2013-06-20 06:19:02 -04:00
|
|
|
# -*- makefile-gmake -*-
|
2014-07-02 23:38:13 -04:00
|
|
|
gnumake = yes
|
|
|
|
|
2015-04-02 22:57:11 -04:00
|
|
|
CHECK_TARGETS := exam love check%
|
2013-03-06 06:59:23 -05:00
|
|
|
TEST_TARGETS := $(filter check test check% test% btest%,$(MAKECMDGOALS))
|
|
|
|
TEST_TARGETS += $(subst check,test-all,$(patsubst check-%,test-%,$(TEST_TARGETS)))
|
|
|
|
TEST_TARGETS := $(patsubst test-%,yes-test-%,$(patsubst btest-%,yes-btest-%,$(TEST_TARGETS)))
|
|
|
|
TEST_DEPENDS := $(if $(TEST_TARGETS),$(filter all main exts,$(MAKECMDGOALS)))
|
2015-04-02 22:57:11 -04:00
|
|
|
TEST_DEPENDS += $(if $(filter $(CHECK_TARGETS),$(MAKECMDGOALS)),main)
|
2015-09-01 22:51:13 -04:00
|
|
|
TEST_DEPENDS += $(if $(filter main,$(TEST_DEPENDS)),$(if $(filter all,$(INSTALLDOC)),docs))
|
2013-03-06 06:59:23 -05:00
|
|
|
|
2014-03-24 21:30:07 -04:00
|
|
|
ifneq ($(filter -O0 -Od,$(optflags)),)
|
|
|
|
override XCFLAGS := $(filter-out -D_FORTIFY_SOURCE=%,$(XCFLAGS))
|
|
|
|
endif
|
|
|
|
|
2015-03-13 04:29:26 -04:00
|
|
|
ifeq ($(if $(filter all main exts enc trans libencs libenc libtrans \
|
2015-03-18 04:08:31 -04:00
|
|
|
prog program ruby ruby$(EXEEXT) \
|
|
|
|
wprogram rubyw rubyw$(EXEEXT) \
|
|
|
|
miniruby$(EXEEXT) mini,\
|
2015-03-12 12:15:07 -04:00
|
|
|
$(MAKECMDGOALS)),,$(MAKECMDGOALS)),)
|
2015-10-22 10:56:37 -04:00
|
|
|
-include $(SHOWFLAGS)
|
2015-03-12 12:15:07 -04:00
|
|
|
endif
|
|
|
|
|
2014-06-01 15:32:15 -04:00
|
|
|
ifneq ($(filter universal-%,$(arch)),)
|
|
|
|
define archcmd
|
2014-06-01 15:32:17 -04:00
|
|
|
%.$(1).S: %.c
|
|
|
|
@$$(ECHO) translating $$< with $(2)
|
|
|
|
$$(Q) $$(CC) $$(CFLAGS_NO_ARCH) $(2) $$(XCFLAGS) $$(CPPFLAGS) $$(COUTFLAG)$$@ -S $$<
|
|
|
|
|
|
|
|
%.S: %.$(1).S
|
|
|
|
|
2014-06-01 15:32:15 -04:00
|
|
|
%.$(1).i: %.c
|
|
|
|
@$$(ECHO) preprocessing $$< with $(2)
|
|
|
|
$$(Q) $$(CPP) $$(warnflags) $(2) $$(XCFLAGS) $$(CPPFLAGS) $$(COUTFLAG)$$@ -E $$< > $$@
|
|
|
|
|
|
|
|
%.i: %.$(1).i
|
|
|
|
endef
|
|
|
|
|
2014-06-01 17:50:32 -04:00
|
|
|
$(foreach arch,$(filter -arch=%,$(subst -arch ,-arch=,$(ARCH_FLAG))),\
|
2014-06-01 15:32:15 -04:00
|
|
|
$(eval $(call archcmd,$(patsubst -arch=%,%,$(value arch)),$(patsubst -arch=%,-arch %,$(value arch)))))
|
|
|
|
endif
|
|
|
|
|
2015-04-01 04:14:35 -04:00
|
|
|
ifneq ($(filter $(CHECK_TARGETS) test,$(MAKECMDGOALS)),)
|
2013-03-06 06:59:23 -05:00
|
|
|
yes-test-knownbug: $(TEST_DEPENDS) yes-btest-ruby
|
|
|
|
yes-btest-ruby: $(TEST_DEPENDS) yes-test-sample
|
|
|
|
yes-test-sample: $(TEST_DEPENDS)
|
|
|
|
endif
|
2015-04-01 04:14:35 -04:00
|
|
|
ifneq ($(filter $(CHECK_TARGETS),$(MAKECMDGOALS)) $(filter test-all,$(TEST_TARGETS)),)
|
2015-10-09 09:54:43 -04:00
|
|
|
yes-test-testframework yes-test-almost yes-test-ruby: $(filter-out %test-all %test-ruby check%,$(TEST_TARGETS))
|
2013-03-06 06:59:23 -05:00
|
|
|
endif
|
2015-04-01 04:14:35 -04:00
|
|
|
ifneq ($(filter $(CHECK_TARGETS),$(MAKECMDGOALS))$(if $(filter test-all,$(MAKECMDGOALS)),$(filter test-knownbug,$(MAKECMDGOALS))),)
|
2015-10-09 09:54:43 -04:00
|
|
|
yes-test-testframework yes-test-almost yes-test-ruby: yes-test-knownbug
|
|
|
|
yes-test-almost: yes-test-testframework
|
2013-03-26 23:42:19 -04:00
|
|
|
endif
|
2013-03-06 06:59:23 -05:00
|
|
|
|
|
|
|
$(TEST_TARGETS): $(TEST_DEPENDS)
|
2013-03-06 20:39:10 -05:00
|
|
|
|
|
|
|
ifneq ($(if $(filter install,$(MAKECMDGOALS)),$(filter uninstall,$(MAKECMDGOALS))),)
|
|
|
|
install-targets := $(filter install uninstall,$(MAKECMDGOALS))
|
|
|
|
$(word 1,$(install-targets)): $(word 0,$(install-targets))
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifneq ($(filter reinstall,$(MAKECMDGOALS)),)
|
2014-06-19 10:11:52 -04:00
|
|
|
install-prereq: uninstall
|
|
|
|
uninstall sudo-precheck: all $(if $(filter all,$(INSTALLDOC)),docs)
|
2013-03-06 20:39:10 -05:00
|
|
|
endif
|
2014-06-20 00:20:26 -04:00
|
|
|
|
2015-04-02 03:06:06 -04:00
|
|
|
ifneq ($(filter exam,$(MAKECMDGOALS)),)
|
2015-04-01 10:30:53 -04:00
|
|
|
test-rubyspec: check
|
|
|
|
yes-test-all no-test-all: test
|
|
|
|
endif
|
|
|
|
|
2014-06-20 00:20:26 -04:00
|
|
|
ifneq ($(filter love,$(MAKECMDGOALS)),)
|
|
|
|
showflags: up
|
|
|
|
sudo-precheck: test
|
|
|
|
install-prereq: sudo-precheck
|
|
|
|
yes-test-all no-test-all: install
|
|
|
|
endif
|