NWGNUhead.inc 2.66 KB
Newer Older
powelld's avatar
powelld committed
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 108 109
#
# 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"
ifneq "$(findstring clobber_,$(MAKECMDGOALS))" "clobber_"
	@$(ECHONL)
	@echo $(DL)Building $(CURDIR)/$@$(DL)
endif
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,$@)