VPATH=%VPATH%
CC ?= gcc
CXX ?= g++
CXXFLAGS ?=
AR ?= ar
RUSTC ?= rustc
RUSTFLAGS ?=
RUSTDOC ?= rustdoc
RUSTDOC_FLAGS ?=
RUSTDOC_TARGET ?= doc
RUST_SRC=$(shell find $(VPATH)/. -type f -name '*.rs')
CFLAGS += -fPIC
.PHONY: all
all: libstb-image-servo.dummy
stb_image.o: src/stb_image.c
$(CC) $< -o $@ -c $(CFLAGS)
libstb-image-servo.dummy: src/lib.rs $(RUST_SRC) libstb-image.a
$(RUSTC) $(RUSTFLAGS) $< --out-dir . -C extra-filename=-servo
touch $@
stb-image-test: src/lib.rs $(RUST_SRC) libstb-image.a
$(RUSTC) $(RUSTFLAGS) $< -o $@ --test
libstb-image.a: stb_image.o
$(AR) rcs $@ $^
.PHONY: doc
doc: $(RUSTDOC_TARGET)/stb_image/index.html
$(RUSTDOC_TARGET)/stb_image/index.html: src/lib.rs $(RUST_SRC) libstb-image.a
$(RUSTDOC) $(RUSTDOC_FLAGS) $< -o $(RUSTDOC_TARGET)
check: stb-image-test
./stb-image-test
.PHONY: clean
clean:
rm -f *.o *.a *.so *.dylib *.rlib *.dll *.dummy *-test