File: Makefile.ext

package info (click to toggle)
libstatgen 1.0.15-8
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,588 kB
  • sloc: cpp: 49,624; ansic: 1,408; makefile: 320; sh: 60
file content (72 lines) | stat: -rw-r--r-- 2,363 bytes parent folder | download | duplicates (4)
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# Your Makefile should include this Makefile after defining:
#   EXE - the executable name
#   TOOLBASE - the base filename for files with .h & .cpp versions
#   SRCONLY - any cpp files without headers.
#   HDRONLY - any header files without cpp
#   COMPILE_ANY_CHANGE - any files that should be compiled if any of the
#                        files change.  These files MUST also be
#                        included in TOOLBASE or SRCONLY.  Here they are
#                        just the base name without the extension.
#    VERSION - if not version in Makefile.include
#   BINDIR if it is not ../bin
#   USER_INCLUDES if any additional directories need to be included to pick up
#                 header files (example: USER_INCLUDES=-ImyDir1 -ImyDir2)
#   INSTALLDIR if not /usr/local/bin
EXE ?=
BINDIR ?= ../bin
TESTDIR ?= ../test

MAKEFILES_PATH := $(dir $(lastword $(MAKEFILE_LIST)))
include $(MAKEFILES_PATH)Makefile.common

# Set the bins for each build type
BINDIR_OPT ?= $(BINDIR)$(SUBDIR_OPT)
BINDIR_DEBUG ?= $(BINDIR)$(SUBDIR_DEBUG)
BINDIR_PROFILE ?= $(BINDIR)$(SUBDIR_PROFILE)

PROG_OPT ?= $(BINDIR_OPT)/$(EXE)
PROG_DEBUG ?= $(BINDIR_DEBUG)/$(EXE)
PROG_PROFILE ?= $(BINDIR_PROFILE)/$(EXE)

.PHONY: $(STAT_GEN_LIB_OPT) $(STAT_GEN_LIB_DEBUG) $(STAT_GEN_LIB_PROFILE)

# Build the appropriate program
opt: $(PROG_OPT)
debug: $(PROG_DEBUG)
profile: $(PROG_PROFILE)

# Build with the appropriate dependencies
$(PROG_OPT): $(USER_LIBS) $(REQ_LIBS_OPT) $(OBJECTS_OPT) | $(BINDIR_OPT)
	$(OPT_BUILD)

$(PROG_DEBUG): $(USER_LIBS) $(REQ_LIBS_DEBUG) $(OBJECTS_DEBUG) | $(BINDIR_DEBUG)
	$(DEBUG_BUILD)

$(PROG_PROFILE): $(USER_LIBS) $(REQ_LIBS_PROFILE) $(OBJECTS_PROFILE) | $(BINDIR_PROFILE)
	$(PROFILE_BUILD)

# Build the statgen lib if necessary
$(STAT_GEN_LIB_OPT):
	$(MAKE) -C $(@D) --no-print-directory opt
$(STAT_GEN_LIB_DEBUG): 
	$(MAKE) -C $(@D) --no-print-directory debug
$(STAT_GEN_LIB_PROFILE): 
	$(MAKE) -C $(@D) --no-print-directory profile



.SECONDEXPANSION:
$(OBJECTS_OPT): TYPE = OPT
$(OBJECTS_DEBUG): TYPE=DEBUG
$(OBJECTS_PROFILE): TYPE:=PROFILE

$(OBJECTS_OPT): $(INCLUDE_PATH)/*h | $(STAT_GEN_LIB_OPT)
$(OBJECTS_DEBUG): $(INCLUDE_PATH)/*h | $(STAT_GEN_LIB_DEBUG)
$(OBJECTS_PROFILE): $(INCLUDE_PATH)/*h | $(STAT_GEN_LIB_PROFILE)

$(INCLUDE_PATH)/*h: $$(STAT_GEN_LIB_$$(TYPE))


$(BINDIR_OPT) $(BINDIR_DEBUG) $(BINDIR_PROFILE):
	mkdir -p $@