| # ignore-cross-compile | 
 | # needs-unwind | 
 | include ../tools.mk | 
 |  | 
 | all: archive | 
 | 	# Compile `main.rs`, which will link into our library, and run it. | 
 | 	$(RUSTC) main.rs | 
 | 	$(call RUN,main) | 
 |  | 
 | ifdef IS_MSVC | 
 | archive: add.o panic.o | 
 | 	# Now, create an archive using these two objects. | 
 | 	$(AR) crus $(TMPDIR)/add.lib $(TMPDIR)/add.o $(TMPDIR)/panic.o | 
 | else | 
 | archive: add.o panic.o | 
 | 	# Now, create an archive using these two objects. | 
 | 	$(AR) crus $(TMPDIR)/libadd.a $(TMPDIR)/add.o $(TMPDIR)/panic.o | 
 | endif | 
 |  | 
 | # Compile `panic.rs` into an object file. | 
 | # | 
 | # Note that we invoke `rustc` directly, so we may emit an object rather | 
 | # than an archive. We'll do that later. | 
 | panic.o: | 
 | 	$(BARE_RUSTC) $(RUSTFLAGS)  \ | 
 | 		--out-dir $(TMPDIR) \ | 
 | 		--emit=obj panic.rs | 
 |  | 
 | # Compile `add.c` into an object file. | 
 | add.o: | 
 | 	$(call COMPILE_OBJ,$(TMPDIR)/add.o,add.c) | 
 |  |