22 libvoodoo_translator_sources
='
27 libvoodoo_writer_sources
='
31 library_test_sources
='
41 test_voodoo_translator
51 write_objects LIBANTIMONY_OBJECTS generated
/ $libantimony_sources
52 write_objects LIBVOODOO_TRANSLATOR_OBJECTS generated
/ \
53 $libvoodoo_translator_sources
54 write_objects LIBVOODOO_WRITER_OBJECTS generated
/ $libvoodoo_writer_sources
55 write_objects TEST_OBJECTS test
/ $library_test_sources
57 LIBOBJECTS = $(LIBANTIMONY_OBJECTS) \
58 $(LIBVOODOO_TRANSLATOR_OBJECTS) \
59 $(LIBVOODOO_WRITER_OBJECTS)
60 OBJECTS = $(LIBOBJECTS) $(TEST_OBJECTS) generated/transmute.o
61 BINTARGETS = bin/transmute
62 LIBTARGETS = lib/libantimony.so \
63 lib/libvoodoo_translator.so \
64 lib/libvoodoo_writer.so
66 write_targets TEST_TARGETS test
/ $library_test_sources
69 default : $(BINTARGETS)
71 all : default $(TEST_TARGETS)
74 [ \! -d generated ] || rm -r generated
75 cp -r bootstrap generated
83 -rm -r bin lib $(TEST_TARGETS) Makefile
88 bin/transmute : bin generated/transmute.o $(LIBTARGETS)
89 $(CC) generated/transmute.o -o bin/transmute \
90 -Llib -lantimony -lgc -lvoodoo_translator -lvoodoo_writer
98 libs : generated $(LIBTARGETS)
100 lib/libantimony.so : lib $(LIBANTIMONY_OBJECTS)
101 $(CC) -shared $(LIBANTIMONY_OBJECTS) -o lib/libantimony.so
103 lib/libvoodoo_translator.so : lib $(LIBVOODOO_TRANSLATOR_OBJECTS)
104 $(CC) -shared $(LIBVOODOO_TRANSLATOR_OBJECTS) \
105 -o lib/libvoodoo_translator.so
107 lib/libvoodoo_writer.so : lib $(LIBVOODOO_WRITER_OBJECTS)
108 $(CC) -shared $(LIBVOODOO_WRITER_OBJECTS) -o lib/libvoodoo_writer.so
110 runtests : libs $(TEST_TARGETS)
113 test/test_voodoo_translator : test/test_voodoo_translator.o \
114 lib/libantimony.so lib/libvoodoo_translator.so lib/libvoodoo_writer.so
115 $(CC) $< -o $@ -Llib -lantimony -lgc -lvoodoo_translator \
118 test/test_voodoo_writer : test/test_voodoo_writer.o \
119 lib/libantimony.so lib/libvoodoo_writer.so
120 $(CC) $< -o $@ -Llib -lantimony -lgc -lvoodoo_writer
122 .SUFFIXES : .o .sb .voo
124 .o : lib/libantimony.so
125 $(CC) $< -o $@ -Llib -lantimony -lgc
130 generated/%.o : src/%.voo
133 generated/%.voo : src/%.sb generated
134 env LD_LIBRARY_PATH=$$PWD/lib bin/transmute < $< > $@
136 test/%.voo : test/%.sb libs bin/transmute
137 env LD_LIBRARY_PATH=$$PWD/lib bin/transmute < $< > $@
139 .PHONY : all bootstrap clean default distclean libs runtests
144 # write_objects $name $prefix $names
151 printf ' \\\n\t%s%s.o' "$prefix" "$x"
157 # write_targets $name $prefix $names
164 printf ' \\\n\t%s%s' "$prefix" "$x"
169 write_makefile
> Makefile