#
#  Do not edit this file.  This file is generated from 
#  package.bld.  Any modifications to this file will be 
#  overwritten whenever makefiles are re-generated.
#

unexport MAKEFILE_LIST
override PKGDIR = hello/mod
XDCINCS = -I. -I$(strip $(subst ;, -I,$(subst $(space),\$(space),$(XPKGPATH))))
XDCCFGDIR = package/cfg/

#
# The following dependencies ensure package.mak is rebuilt
# in the event that some included BOM script changes.
#
ifneq (clean,$(MAKECMDGOALS))
E:/rtsc/xdctools_3_15_00_29/packages/gnu/targets/ITarget.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/gnu/targets/ITarget.xs
D:/work/tutorial/repo/config.bld:
package.mak: D:/work/tutorial/repo/config.bld
E:/rtsc/xdctools_3_15_00_29/packages/xdc/xmlgen2.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/xmlgen2.xs
E:/rtsc/xdctools_3_15_00_29/packages/xdc/services/global/Clock.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/services/global/Clock.xs
E:/rtsc/xdctools_3_15_00_29/packages/xdc/package.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/package.xs
E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/PackageContents.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/PackageContents.xs
E:/rtsc/xdctools_3_15_00_29/packages/xdc/services/global/Trace.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/services/global/Trace.xs
E:/rtsc/xdctools_3_15_00_29/packages/gnu/targets/Linux86.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/gnu/targets/Linux86.xs
E:/rtsc/xdctools_3_15_00_29/packages/ti/targets/ITarget.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/ti/targets/ITarget.xs
E:/rtsc/xdctools_3_15_00_29/packages/gnu/targets/Mingw.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/gnu/targets/Mingw.xs
E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/package.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/package.xs
E:/rtsc/xdctools_3_15_00_29/packages/gnu/targets/MVArm9.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/gnu/targets/MVArm9.xs
E:/rtsc/xdctools_3_15_00_29/include/utils.tci:
package.mak: E:/rtsc/xdctools_3_15_00_29/include/utils.tci
E:/rtsc/xdctools_3_15_00_29/packages/xdc/xdc.tci:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/xdc.tci
E:/rtsc/xdctools_3_15_00_29/packages/gnu/targets/UCArm9.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/gnu/targets/UCArm9.xs
E:/rtsc/xdctools_3_15_00_29/packages/xdc/template.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/template.xs
E:/rtsc/xdctools_3_15_00_29/packages/ti/targets/MSP430.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/ti/targets/MSP430.xs
package.mak: package.bld
E:/rtsc/xdctools_3_15_00_29/packages/xdc/xmlgen.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/xmlgen.xs
E:/rtsc/xdctools_3_15_00_29/packages/gnu/targets/package.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/gnu/targets/package.xs
E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/_gen.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/_gen.xs
E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/ITarget.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/ITarget.xs
E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/Repository.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/Repository.xs
E:/rtsc/xdctools_3_15_00_29/packages/xdc/IPackage.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/IPackage.xs
E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/Script.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/Script.xs
E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/BuildEnvironment.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/BuildEnvironment.xs
E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/Library.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/Library.xs
E:/rtsc/xdctools_3_15_00_29/packages/ti/targets/package.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/ti/targets/package.xs
E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/Utils.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/Utils.xs
E:/rtsc/xdctools_3_15_00_29/packages/xdc/om2.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/om2.xs
E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/Executable.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/Executable.xs
E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/ITargetFilter.xs:
package.mak: E:/rtsc/xdctools_3_15_00_29/packages/xdc/bld/ITargetFilter.xs
endif

ti.targets.C64P.rootDir ?= d:/ti/c6000/alc
ti.targets.packageBase ?= E:/rtsc/xdctools_3_15_00_29/packages/ti/targets/
gnu.targets.Mingw.rootDir ?= e:/rtsc/mingw
gnu.targets.packageBase ?= E:/rtsc/xdctools_3_15_00_29/packages/gnu/targets/
.PRECIOUS: $(XDCCFGDIR)/%.o64P
.PHONY: all,64P .dlls,64P .executables,64P test,64P
all,64P: .executables,64P
.executables,64P: .libraries,64P
.executables,64P: .dlls,64P
.dlls,64P: .libraries,64P
.libraries,64P: .interfaces
	@$(RM) $@
	@$(TOUCH) "$@"

.help::
	@$(ECHO) xdc test,64P
	@$(ECHO) xdc .executables,64P
	@$(ECHO) xdc .libraries,64P
	@$(ECHO) xdc .dlls,64P

.PRECIOUS: $(XDCCFGDIR)/%.o86GW
.PHONY: all,86GW .dlls,86GW .executables,86GW test,86GW
all,86GW: .executables,86GW
.executables,86GW: .libraries,86GW
.executables,86GW: .dlls,86GW
.dlls,86GW: .libraries,86GW
.libraries,86GW: .interfaces
	@$(RM) $@
	@$(TOUCH) "$@"

.help::
	@$(ECHO) xdc test,86GW
	@$(ECHO) xdc .executables,86GW
	@$(ECHO) xdc .libraries,86GW
	@$(ECHO) xdc .dlls,86GW


all: .executables 
.executables: .libraries .dlls
.libraries: .interfaces

PKGCFGS := $(wildcard package.xs) package/build.cfg
.interfaces: package/package.xdc.inc package/package.defs.h package.xdc $(PKGCFGS)

-include package/package.xdc.dep
package/%.xdc.inc package/%_hello.mod.c package/%.defs.h: %.xdc $(PKGCFGS)
	@$(MSG) generating interfaces for package hello.mod" (because $@ is older than $(firstword $?))" ...
	$(XSRUN) -f xdc/services/intern/cmd/build.xs $(MK_IDLOPTS) -m package/package.xdc.dep -i package/package.xdc.inc package.xdc

.libraries,86GW .libraries: lib/hello.mod.a86GW

-include lib/hello.mod.a86GW.mak
lib/hello.mod.a86GW: 
	$(RM) $@
	@$(MSG) archiving package/lib/lib/hello.mod/Talker.o86GW package/lib/lib/hello.mod/package/package_hello.mod.o86GW  into $@ ...
	$(gnu.targets.Mingw.rootDir)/mingw32/bin/ar  cr $@   package/lib/lib/hello.mod/Talker.o86GW package/lib/lib/hello.mod/package/package_hello.mod.o86GW 
lib/hello.mod.a86GW:LD_LIBRARY_PATH=
lib/hello.mod.a86GW: PATH:=.;$(gnu.targets.Mingw.rootDir)/bin;$(PATH)
lib/hello.mod.a86GW: Path:=.;$(gnu.targets.Mingw.rootDir)/bin;$(PATH)

clean,86GW clean::
	-$(RM) lib/hello.mod.a86GW
.libraries,64P .libraries: lib/hello.mod.a64P

-include lib/hello.mod.a64P.mak
lib/hello.mod.a64P: 
	$(RM) $@
	@$(MSG) archiving package/lib/lib/hello.mod/Talker.o64P package/lib/lib/hello.mod/package/package_hello.mod.o64P  into $@ ...
	$(ti.targets.C64P.rootDir)/bin/ar6x  rq $@   package/lib/lib/hello.mod/Talker.o64P package/lib/lib/hello.mod/package/package_hello.mod.o64P 
lib/hello.mod.a64P:C_DIR=
lib/hello.mod.a64P: PATH:=$(ti.targets.C64P.rootDir)/bin/;$(PATH)
lib/hello.mod.a64P: Path:=$(ti.targets.C64P.rootDir)/bin/;$(PATH)

clean,64P clean::
	-$(RM) lib/hello.mod.a64P
.executables,64P .executables: prog.x64P

-include package/cfg/prog_x64P.mak
ifneq (clean,$(MAKECMDGOALS))
-include package/cfg/prog_x64P.dep
endif
package/cfg/prog/prog.o64P package/cfg/prog_x64P.o64P : | package/cfg/prog_x64P.xdl
prog.x64P:
	$(RM) $@
	@$(MSG) lnk64P $@ ...
	$(RM) $(XDCCFGDIR)/$@.map
	$(ti.targets.C64P.rootDir)/bin/lnk6x -w -q -u _c_int00  -q -o $@ package/cfg/prog/prog.o64P package/cfg/prog_x64P.o64P  package/cfg/prog_x64P.xdl  -c -m $(XDCCFGDIR)/$@.map -l $(ti.targets.C64P.rootDir)/lib/rts64plus.lib
	
prog.x64P:C_DIR=
prog.x64P: PATH:=$(ti.targets.C64P.rootDir)/bin/;$(PATH)
prog.x64P: Path:=$(ti.targets.C64P.rootDir)/bin/;$(PATH)


ifeq (,$(wildcard .libraries,64P))
prog.x64P package/cfg/prog_x64P.c: .libraries,64P
endif

package/cfg/prog_x64P.c package/cfg/prog_x64P.h package/cfg/prog_x64P.xdl: override _PROG_NAME := prog.x64P
package/cfg/prog_x64P.c: package/cfg/prog_x64P.cfg
prog.test test,64P test: prog.x64P.test

prog.x64P.test:: prog.x64P
ifeq (,$(_TESTLEVEL))
	@$(MAKE) -R -r --no-print-directory -f $(XDCROOT)/packages/xdc/bld/xdc.mak _TESTLEVEL=1 prog.x64P.test
else
	@$(MSG) running $<  ...
	$(call EXEC.prog.x64P, ) 
endif


clean:: clean,64P
	-$(RM) package/cfg/prog_x64P.cfg
	-$(RM) package/cfg/prog_x64P.dep
	-$(RM) package/cfg/prog_x64P.c
	-$(RM) package/cfg/prog_x64P.xdc.inc

clean,64P::
	-$(RM) prog.x64P
	-$(RM) .tmp,prog.x64P,*

clean:: 
	-$(RM) package/cfg/prog_x64P.pjt
.executables,86GW .executables: prog.x86GW

-include package/cfg/prog_x86GW.mak
ifneq (clean,$(MAKECMDGOALS))
-include package/cfg/prog_x86GW.dep
endif
package/cfg/prog/prog.o86GW package/cfg/prog_x86GW.o86GW : | package/cfg/prog_x86GW.xdl
prog.x86GW:
	$(RM) $@
	@$(MSG) lnk86GW $@ ...
	$(gnu.targets.Mingw.rootDir)//bin/mingw32-gcc.exe    -o $@ package/cfg/prog/prog.o86GW package/cfg/prog_x86GW.o86GW  package/cfg/prog_x86GW.xdl  -lstdc++ -L$(gnu.targets.Mingw.rootDir)/lib
	
prog.x86GW:LD_LIBRARY_PATH=
prog.x86GW: PATH:=.;$(gnu.targets.Mingw.rootDir)/bin;$(PATH)
prog.x86GW: Path:=.;$(gnu.targets.Mingw.rootDir)/bin;$(PATH)


ifeq (,$(wildcard .libraries,86GW))
prog.x86GW package/cfg/prog_x86GW.c: .libraries,86GW
endif

package/cfg/prog_x86GW.c package/cfg/prog_x86GW.h package/cfg/prog_x86GW.xdl: override _PROG_NAME := prog.x86GW
package/cfg/prog_x86GW.c: package/cfg/prog_x86GW.cfg
prog.test test,86GW test: prog.x86GW.test

prog.x86GW.test:: prog.x86GW
ifeq (,$(_TESTLEVEL))
	@$(MAKE) -R -r --no-print-directory -f $(XDCROOT)/packages/xdc/bld/xdc.mak _TESTLEVEL=1 prog.x86GW.test
else
	@$(MSG) running $<  ...
	$(call EXEC.prog.x86GW, ) 
endif


clean:: clean,86GW
	-$(RM) package/cfg/prog_x86GW.cfg
	-$(RM) package/cfg/prog_x86GW.dep
	-$(RM) package/cfg/prog_x86GW.c
	-$(RM) package/cfg/prog_x86GW.xdc.inc

clean,86GW::
	-$(RM) prog.x86GW
	-$(RM) .tmp,prog.x86GW,*

%,copy:
	@$(if $<,,$(MSG) don\'t know how to build $*; exit 1)
	@$(MSG) cp $< $@
	$(RM) $@
	$(CP) $< $@
Talker.s86GW,copy : package/lib/lib/hello.mod/Talker.s86GW
prog.o64P,copy : package/cfg/prog/prog.o64P
prog.s64P,copy : package/cfg/prog/prog.s64P
package_hello.mod.o64P,copy : package/lib/lib/hello.mod/package/package_hello.mod.o64P
package_hello.mod.s64P,copy : package/lib/lib/hello.mod/package/package_hello.mod.s64P
prog_x64P.o64P,copy : package/cfg/prog_x64P.o64P
prog_x64P.s64P,copy : package/cfg/prog_x64P.s64P
prog_x86GW.o86GW,copy : package/cfg/prog_x86GW.o86GW
Talker.o64P,copy : package/lib/lib/hello.mod/Talker.o64P
prog.o86GW,copy : package/cfg/prog/prog.o86GW
Talker.s64P,copy : package/lib/lib/hello.mod/Talker.s64P
package_hello.mod.o86GW,copy : package/lib/lib/hello.mod/package/package_hello.mod.o86GW
Talker.o86GW,copy : package/lib/lib/hello.mod/Talker.o86GW
prog_x86GW.s86GW,copy : package/cfg/prog_x86GW.s86GW
prog.s86GW,copy : package/cfg/prog/prog.s86GW
package_hello.mod.s86GW,copy : package/lib/lib/hello.mod/package/package_hello.mod.s86GW

$(XDCCFGDIR)%.c $(XDCCFGDIR)%.h $(XDCCFGDIR)%.xdl: $(XDCCFGDIR)%.cfg .interfaces $(XDCROOT)/packages/xdc/cfg/Main.xs
	@$(MSG) "configuring $(_PROG_NAME) from $< ..."
	$(CONFIG) $(_PROG_XSOPTS) xdc.cfg $(_PROG_NAME) $(XDCCFGDIR)$*.cfg $(XDCCFGDIR)$*

.PHONY: release,hello_mod
hello_mod.tar: package/build.cfg
hello_mod.tar: lib/hello.mod.a86GW
hello_mod.tar: package/package.ext.xml
hello_mod.tar: package/package.xdc.inc
hello_mod.tar: lib/hello.mod.a64P
hello_mod.tar: package/package.bld.xml
hello_mod.tar: package/package.rel.dot
ifneq (clean,$(MAKECMDGOALS))
-include package/rel/hello_mod.tar.dep
endif
package/rel/hello_mod/hello/mod/package/package.rel.xml:

hello_mod.tar: package/rel/hello_mod.xdc.inc package/rel/hello_mod/hello/mod/package/package.rel.xml
	@$(MSG) making release file $@ "(because of $(firstword $?))" ...
	-$(RM) $@
	$(call MKRELTAR,package/rel/hello_mod.xdc.inc,package/rel/hello_mod.tar.dep)


release release,hello_mod: all hello_mod.tar
clean:: .clean
	-$(RM) hello_mod.tar
	-$(RM) package/rel/hello_mod.xdc.inc
	-$(RM) package/rel/hello_mod.tar.dep

clean:: .clean
	-$(RM) .libraries .libraries,*
clean:: 
	-$(RM) .dlls .dlls,*
#
# The following clean rule removes user specified
# generated files or directories.
#

ifneq (clean,$(MAKECMDGOALS))
ifeq (,$(wildcard package))
    $(shell $(MKDIR) package)
endif
ifeq (,$(wildcard package/cfg))
    $(shell $(MKDIR) package/cfg)
endif
ifeq (,$(wildcard package/lib))
    $(shell $(MKDIR) package/lib)
endif
ifeq (,$(wildcard package/lib/lib))
    $(shell $(MKDIR) package/lib/lib)
endif
ifeq (,$(wildcard package/lib/lib/hello.mod))
    $(shell $(MKDIR) package/lib/lib/hello.mod)
endif
ifeq (,$(wildcard package/rel))
    $(shell $(MKDIR) package/rel)
endif
ifeq (,$(wildcard lib))
    $(shell $(MKDIR) lib)
endif
ifeq (,$(wildcard package/external))
    $(shell $(MKDIR) package/external)
endif
ifeq (,$(wildcard package/cfg/prog))
    $(shell $(MKDIR) package/cfg/prog)
endif
ifeq (,$(wildcard package/lib/lib/hello.mod/package))
    $(shell $(MKDIR) package/lib/lib/hello.mod/package)
endif
ifeq (,$(wildcard package/internal))
    $(shell $(MKDIR) package/internal)
endif
endif
clean::
	-$(RMDIR) package


clean:: 
	-$(RM) package/hello.mod.pjt
