summaryrefslogtreecommitdiffstats
path: root/make/include/main.rules
blob: e7511a263ec0a21cae9ba78c200faf9269645e95 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
.DELETE_ON_ERROR:
.SUFFIXES:

###############################################################################

## file-wide conditional to use xcode rules if xcode=1 method=terminal
ifeq ($(FEATURE.xcode):$(BUILD.method),1:terminal)
    include $(PROJECT/)macosx/module.xcode
else

## only included using special report targets
ifneq (,$(REPORT))
    include $(PROJECT/)make/include/report.defs
endif

###############################################################################

.PHONY: build install clean xclean doc report

build:
install:
clean:
xclean: contrib.xclean clean
doc:
report:: report.main report.modules

## legacy
mrproper: xclean

###############################################################################

include $(PROJECT/)make/include/base.rules

include $(MODULES:%=$(PROJECT/)%/module.rules)
-include $(PROJECT/)make/variant/$(HOST.system).rules
-include $(PROJECT/)make/variant/$(HOST.system).$(BUILD.machine).rules

###############################################################################

## target which causes re-configure if project-root is svn update'd
$(BUILD/)GNUmakefile: $(wildcard $(PROJECT/).svn/entries)
	$(PROJECT/)configure $(CONF.args)

## target useful to force reconfigure; only helpful for build-system development
.PHONY: reconfigure
reconfigure:
	$(PROJECT/)configure $(CONF.args)

###############################################################################

## target to build all dependency dirs
$(sort $(dir $(BUILD.out))):
	$(MKDIR.exe) -p $@

endif ## xcode=1 method=terminal