summaryrefslogtreecommitdiffstats
path: root/make/include/main.rules
blob: 132567c1e965d10caee3486923312c11d7165f4e (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
56
57
.DELETE_ON_ERROR:
.SUFFIXES:

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

## file-wide conditional to use xcode rules if xcode=1 method=terminal
## xcodemake will set BUILD.method != terminal to prevent infinite recursion
ifeq (1:terminal,$(FEATURE.xcode):$(BUILD.method))
    include $(SRC/)macosx/module.xcode
else

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

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

.PHONY: build clean install uninstall xclean doc report

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

## legacy
mrproper: xclean

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

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

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

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

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

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

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

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

endif ## xcode=1 method=terminal