1-include ../tools.mk
2
3# Testing various mixings of rlibs and dylibs. Makes sure that it's possible to
4# link an rlib to a dylib. The dependency tree among the file looks like:
5#
6#				foo
7#			      /     \
8#			    bar1   bar2
9#			   /    \ /
10#			 baz    baz2
11#
12# This is generally testing the permutations of the foo/bar1/bar2 layer against
13# the baz/baz2 layer
14
15all:
16	# Building just baz
17	$(RUSTC) --crate-type=rlib  foo.rs
18	$(RUSTC) --crate-type=dylib bar1.rs -C prefer-dynamic
19	$(RUSTC) --crate-type=dylib,rlib baz.rs -C prefer-dynamic
20	$(RUSTC) --crate-type=bin baz.rs
21	rm $(TMPDIR)/*
22	$(RUSTC) --crate-type=dylib foo.rs -C prefer-dynamic
23	$(RUSTC) --crate-type=rlib  bar1.rs
24	$(RUSTC) --crate-type=dylib,rlib baz.rs -C prefer-dynamic
25	$(RUSTC) --crate-type=bin baz.rs
26	rm $(TMPDIR)/*
27	# Building baz2
28	$(RUSTC) --crate-type=rlib  foo.rs
29	$(RUSTC) --crate-type=dylib bar1.rs -C prefer-dynamic
30	$(RUSTC) --crate-type=dylib bar2.rs -C prefer-dynamic
31	$(RUSTC) --crate-type=dylib baz2.rs && exit 1 || exit 0
32	$(RUSTC) --crate-type=bin baz2.rs && exit 1 || exit 0
33	rm $(TMPDIR)/*
34	$(RUSTC) --crate-type=rlib  foo.rs
35	$(RUSTC) --crate-type=rlib  bar1.rs
36	$(RUSTC) --crate-type=dylib bar2.rs -C prefer-dynamic
37	$(RUSTC) --crate-type=dylib,rlib baz2.rs
38	$(RUSTC) --crate-type=bin baz2.rs
39	rm $(TMPDIR)/*
40	$(RUSTC) --crate-type=rlib  foo.rs
41	$(RUSTC) --crate-type=dylib bar1.rs -C prefer-dynamic
42	$(RUSTC) --crate-type=rlib  bar2.rs
43	$(RUSTC) --crate-type=dylib,rlib baz2.rs -C prefer-dynamic
44	$(RUSTC) --crate-type=bin baz2.rs
45	rm $(TMPDIR)/*
46	$(RUSTC) --crate-type=rlib  foo.rs
47	$(RUSTC) --crate-type=rlib  bar1.rs
48	$(RUSTC) --crate-type=rlib  bar2.rs
49	$(RUSTC) --crate-type=dylib,rlib baz2.rs -C prefer-dynamic
50	$(RUSTC) --crate-type=bin baz2.rs
51	rm $(TMPDIR)/*
52	$(RUSTC) --crate-type=dylib foo.rs -C prefer-dynamic
53	$(RUSTC) --crate-type=rlib  bar1.rs
54	$(RUSTC) --crate-type=rlib  bar2.rs
55	$(RUSTC) --crate-type=dylib,rlib baz2.rs -C prefer-dynamic
56	$(RUSTC) --crate-type=bin baz2.rs
57	rm $(TMPDIR)/*
58	$(RUSTC) --crate-type=dylib foo.rs -C prefer-dynamic
59	$(RUSTC) --crate-type=dylib bar1.rs -C prefer-dynamic
60	$(RUSTC) --crate-type=rlib  bar2.rs
61	$(RUSTC) --crate-type=dylib,rlib baz2.rs
62	$(RUSTC) --crate-type=bin baz2.rs
63	rm $(TMPDIR)/*
64	$(RUSTC) --crate-type=dylib foo.rs -C prefer-dynamic
65	$(RUSTC) --crate-type=rlib  bar1.rs
66	$(RUSTC) --crate-type=dylib bar2.rs -C prefer-dynamic
67	$(RUSTC) --crate-type=dylib,rlib baz2.rs
68	$(RUSTC) --crate-type=bin baz2.rs
69	rm $(TMPDIR)/*
70	$(RUSTC) --crate-type=dylib foo.rs -C prefer-dynamic
71	$(RUSTC) --crate-type=dylib bar1.rs -C prefer-dynamic
72	$(RUSTC) --crate-type=dylib bar2.rs -C prefer-dynamic
73	$(RUSTC) --crate-type=dylib,rlib baz2.rs
74	$(RUSTC) --crate-type=bin baz2.rs
75