#
#  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.
#
#  target compatibility key = gnu.targets.Mingw{1,0,3.4,5
#
ifneq (clean,$(MAKECMDGOALS))
-include package/lib/lib/isqrt_loop/isqrt_loop.o86GW.dep
endif

package/lib/lib/isqrt_loop/isqrt_loop.o86GW: | .interfaces
package/lib/lib/isqrt_loop/isqrt_loop.o86GW: isqrt_loop.c lib/isqrt_loop.a86GW.mak
	@$(RM) $@.dep
	$(RM) $@
	@$(MSG) cl86GW $< ...
	$(gnu.targets.Mingw.rootDir)//bin/mingw32-gcc.exe -c  -x c  -Wunused  -Dfar=  -Dxdc_target_name__=Mingw -Dxdc_target_types__=gnu/targets/std.h -Dxdc_bld__profile_release -Dxdc_bld__vers_1_0_3_4_5 -O2  $(XDCINCS)  -o $@ $<
	$(MKDEP) -o $@.dep -p package/lib/lib/isqrt_loop/ -s o86GW $< -C -Wunused  -Dfar=  -Dxdc_target_name__=Mingw -Dxdc_target_types__=gnu/targets/std.h -Dxdc_bld__profile_release -Dxdc_bld__vers_1_0_3_4_5 -O2  $(XDCINCS) 
	-@$(FIXDEP) $@.dep $@.dep
	
package/lib/lib/isqrt_loop/isqrt_loop.o86GW:LD_LIBRARY_PATH=
package/lib/lib/isqrt_loop/isqrt_loop.o86GW: PATH:=.;$(gnu.targets.Mingw.rootDir)/bin;$(PATH)
package/lib/lib/isqrt_loop/isqrt_loop.o86GW: Path:=.;$(gnu.targets.Mingw.rootDir)/bin;$(PATH)

package/lib/lib/isqrt_loop/isqrt_loop.s86GW: | .interfaces
package/lib/lib/isqrt_loop/isqrt_loop.s86GW: isqrt_loop.c lib/isqrt_loop.a86GW.mak
	@$(RM) $@.dep
	$(RM) $@
	@$(MSG) cl86GW -S $< ...
	$(gnu.targets.Mingw.rootDir)//bin/mingw32-gcc.exe -c  -x c -S -Wunused  -Dfar=  -Dxdc_target_name__=Mingw -Dxdc_target_types__=gnu/targets/std.h -Dxdc_bld__profile_release -Dxdc_bld__vers_1_0_3_4_5 -O2  $(XDCINCS)  -o $@ $<
	$(MKDEP) -o $@.dep -p package/lib/lib/isqrt_loop/ -s o86GW $< -C -Wunused  -Dfar=  -Dxdc_target_name__=Mingw -Dxdc_target_types__=gnu/targets/std.h -Dxdc_bld__profile_release -Dxdc_bld__vers_1_0_3_4_5 -O2  $(XDCINCS) 
	-@$(FIXDEP) $@.dep $@.dep
	
package/lib/lib/isqrt_loop/isqrt_loop.s86GW:LD_LIBRARY_PATH=
package/lib/lib/isqrt_loop/isqrt_loop.s86GW: PATH:=.;$(gnu.targets.Mingw.rootDir)/bin;$(PATH)
package/lib/lib/isqrt_loop/isqrt_loop.s86GW: Path:=.;$(gnu.targets.Mingw.rootDir)/bin;$(PATH)

ifneq (clean,$(MAKECMDGOALS))
-include package/lib/lib/isqrt_loop/package/package_charlie.sqrtlib.o86GW.dep
endif

package/lib/lib/isqrt_loop/package/package_charlie.sqrtlib.o86GW: | .interfaces
package/lib/lib/isqrt_loop/package/package_charlie.sqrtlib.o86GW: package/package_charlie.sqrtlib.c lib/isqrt_loop.a86GW.mak
	@$(RM) $@.dep
	$(RM) $@
	@$(MSG) cl86GW $< ...
	$(gnu.targets.Mingw.rootDir)//bin/mingw32-gcc.exe -c  -x c  -Wunused  -Dfar=  -Dxdc_target_name__=Mingw -Dxdc_target_types__=gnu/targets/std.h -Dxdc_bld__profile_release -Dxdc_bld__vers_1_0_3_4_5 -O2  $(XDCINCS)  -o $@ $<
	$(MKDEP) -o $@.dep -p package/lib/lib/isqrt_loop/package/ -s o86GW $< -C -Wunused  -Dfar=  -Dxdc_target_name__=Mingw -Dxdc_target_types__=gnu/targets/std.h -Dxdc_bld__profile_release -Dxdc_bld__vers_1_0_3_4_5 -O2  $(XDCINCS) 
	-@$(FIXDEP) $@.dep $@.dep
	
package/lib/lib/isqrt_loop/package/package_charlie.sqrtlib.o86GW:LD_LIBRARY_PATH=
package/lib/lib/isqrt_loop/package/package_charlie.sqrtlib.o86GW: PATH:=.;$(gnu.targets.Mingw.rootDir)/bin;$(PATH)
package/lib/lib/isqrt_loop/package/package_charlie.sqrtlib.o86GW: Path:=.;$(gnu.targets.Mingw.rootDir)/bin;$(PATH)

package/lib/lib/isqrt_loop/package/package_charlie.sqrtlib.s86GW: | .interfaces
package/lib/lib/isqrt_loop/package/package_charlie.sqrtlib.s86GW: package/package_charlie.sqrtlib.c lib/isqrt_loop.a86GW.mak
	@$(RM) $@.dep
	$(RM) $@
	@$(MSG) cl86GW -S $< ...
	$(gnu.targets.Mingw.rootDir)//bin/mingw32-gcc.exe -c  -x c -S -Wunused  -Dfar=  -Dxdc_target_name__=Mingw -Dxdc_target_types__=gnu/targets/std.h -Dxdc_bld__profile_release -Dxdc_bld__vers_1_0_3_4_5 -O2  $(XDCINCS)  -o $@ $<
	$(MKDEP) -o $@.dep -p package/lib/lib/isqrt_loop/package/ -s o86GW $< -C -Wunused  -Dfar=  -Dxdc_target_name__=Mingw -Dxdc_target_types__=gnu/targets/std.h -Dxdc_bld__profile_release -Dxdc_bld__vers_1_0_3_4_5 -O2  $(XDCINCS) 
	-@$(FIXDEP) $@.dep $@.dep
	
package/lib/lib/isqrt_loop/package/package_charlie.sqrtlib.s86GW:LD_LIBRARY_PATH=
package/lib/lib/isqrt_loop/package/package_charlie.sqrtlib.s86GW: PATH:=.;$(gnu.targets.Mingw.rootDir)/bin;$(PATH)
package/lib/lib/isqrt_loop/package/package_charlie.sqrtlib.s86GW: Path:=.;$(gnu.targets.Mingw.rootDir)/bin;$(PATH)

clean,86GW ::
	-$(RM) package/lib/lib/isqrt_loop/isqrt_loop.o86GW
	-$(RM) package/lib/lib/isqrt_loop/package/package_charlie.sqrtlib.o86GW
	-$(RM) package/lib/lib/isqrt_loop/isqrt_loop.s86GW
	-$(RM) package/lib/lib/isqrt_loop/package/package_charlie.sqrtlib.s86GW

lib/isqrt_loop.a86GW: package/lib/lib/isqrt_loop/isqrt_loop.o86GW package/lib/lib/isqrt_loop/package/package_charlie.sqrtlib.o86GW lib/isqrt_loop.a86GW.mak

clean::
	-$(RM) lib/isqrt_loop.a86GW.mak
