2019-05-24 20:45:19 -04:00
|
|
|
OBJ_DIR?=build
|
|
|
|
TARGET_DIR?=build
|
|
|
|
SRC_DIR?=.
|
|
|
|
RUST_TARGET_DIR?=../../target
|
|
|
|
RUST_SRC_DIR?=../../c
|
|
|
|
RUSTFLAGS?=-C target-cpu=native
|
|
|
|
|
2019-06-21 14:35:18 -04:00
|
|
|
CFLAGS?=-Wall -g -I../../c/build/include
|
2019-05-24 20:45:19 -04:00
|
|
|
LIBS?=-lpathfinder_c
|
|
|
|
MKDIR?=mkdir -p
|
|
|
|
RM?=rm
|
|
|
|
CARGO?=cargo
|
|
|
|
|
|
|
|
UNAME=$(shell uname -s)
|
|
|
|
ifeq ($(UNAME),Darwin)
|
|
|
|
# FIXME(pcwalton): Don't link against HarfBuzz!!
|
|
|
|
LIBS+=-framework OpenGL -framework CoreFoundation -framework CoreGraphics -framework CoreText
|
2019-06-21 16:37:17 -04:00
|
|
|
LIBS+=-framework Metal -lharfbuzz
|
2019-05-24 20:45:19 -04:00
|
|
|
else
|
|
|
|
LIBS+=-lGL
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(DEBUG),)
|
|
|
|
CFLAGS+=-O2
|
|
|
|
LDFLAGS?=-L$(RUST_TARGET_DIR)/release
|
|
|
|
CARGOFLAGS?=--release
|
|
|
|
else
|
|
|
|
CFLAGS+=-O0
|
|
|
|
LDFLAGS?=-L$(RUST_TARGET_DIR)/debug
|
|
|
|
CARGOFLAGS?=
|
|
|
|
endif
|
|
|
|
|
|
|
|
all: $(TARGET_DIR)/c_canvas_minimal
|
|
|
|
|
|
|
|
.PHONY: clean rustlib
|
|
|
|
|
|
|
|
$(TARGET_DIR)/c_canvas_minimal: $(OBJ_DIR)/c_canvas_minimal.o rustlib
|
|
|
|
$(MKDIR) $(TARGET_DIR) && $(CC) $(LDFLAGS) $(LIBS) `sdl2-config --libs` -o $@ $<
|
|
|
|
|
|
|
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
|
|
|
|
$(MKDIR) $(OBJ_DIR) && $(CC) -c $(CFLAGS) `sdl2-config --cflags` -o $@ $<
|
|
|
|
|
|
|
|
rustlib:
|
|
|
|
cd $(RUST_SRC_DIR) && RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) build $(CARGOFLAGS)
|
|
|
|
|
|
|
|
clean:
|
|
|
|
$(RM) -rf $(TARGET_DIR) && $(RM) -rf $(OBJ_DIR)
|