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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
#
# Obtain the global build environment
#
include $(AP_WORK)/build/NWGNUenvironment.inc
#
# Define base targets and rules
#
TARGETS = libs nlms install clobber_libs clobber_nlms clean installdev
.PHONY : $(TARGETS) default all help $(NO_LICENSE_FILE)
# Here is where we will use the NO_LICENSE_FILE variable to see if we need to
# restart the make with it defined
ifdef NO_LICENSE_FILE
default: NO_LICENSE_FILE
all: NO_LICENSE_FILE
install :: NO_LICENSE_FILE
installdev :: NO_LICENSE_FILE
NO_LICENSE_FILE :
$(MAKE) $(MAKECMDGOALS) -f NWGNUmakefile RELEASE=$(RELEASE) DEST="$(INSTALL)" LM_LICENSE_FILE="$(METROWERKS)/license.dat"
else # LM_LICENSE_FILE must be defined so use the real targets
default: $(SUBDIRS) libs nlms
all: $(SUBDIRS) libs nlms install
$(TARGETS) :: $(SUBDIRS)
install :: nlms $(INSTDIRS)
installdev :: $(INSTDEVDIRS)
$(INSTDIRS) ::
$(call MKDIR,$@)
$(INSTDEVDIRS) ::
$(call MKDIR,$@)
endif #NO_LICENSE_FILE check
help :
@echo $(DL)targets for RELEASE=$(RELEASE):$(DL)
@echo $(DL)(default) . . . . libs nlms$(DL)
@echo $(DL)all . . . . . . . does everything (libs nlms install)$(DL)
@echo $(DL)libs. . . . . . . builds all libs$(DL)
@echo $(DL)nlms. . . . . . . builds all nlms$(DL)
@echo $(DL)install . . . . . builds libs and nlms and copies install files to$(DL)
@echo $(DL) "$(INSTALL)"$(DL)
@echo $(DL)installdev. . . . copies headers and files needed for development to$(DL)
@echo $(DL) "$(INSTALL)"$(DL)
@echo $(DL)clean . . . . . . deletes $(OBJDIR) dirs, *.err, and *.map$(DL)
@echo $(DL)clobber_all . . . deletes all possible output from the make$(DL)
@echo $(DL)clobber_install . deletes all files in $(INSTALL)$(DL)
@$(ECHONL)
@echo $(DL)Multiple targets can be used on a single nmake command line -$(DL)
@echo $(DL)(i.e. $(MAKE) clean all)$(DL)
@$(ECHONL)
@echo $(DL)You can also specify RELEASE=debug, RELEASE=noopt, or RELEASE=optimized$(DL)
@echo $(DL)The default is RELEASE=optimized$(DL)
clobber_all :: clean clobber_install clobber_prebuild
clobber_install ::
$(call RMDIR,$(INSTALL))
clobber_prebuild ::
$(call RMDIR,$(PREBUILD_INST))
#
# build recursive targets
#
$(SUBDIRS) : FORCE
ifneq "$(MAKECMDGOALS)" "clean"
@$(ECHONL)
@echo $(DL)Building $(CURDIR)/$@$(DL)
endif
$(MAKE) -C $@ $(MAKECMDGOALS) -f NWGNUmakefile RELEASE=$(RELEASE) DEST="$(INSTALL)" LM_LICENSE_FILE="$(LM_LICENSE_FILE)"
@$(ECHONL)
FORCE:
#
# Standard targets
#
clean :: $(SUBDIRS)
@echo $(DL)Cleaning up $(CURDIR)$(DL)
$(call RMDIR,$(OBJDIR))
$(call DEL,*.err)
$(call DEL,*.map)
$(call DEL,*.tmp)
# $(call DEL,*.d)
$(OBJDIR) ::
$(call MKDIR,$@)
|