-
Notifications
You must be signed in to change notification settings - Fork 16
/
Makefile
54 lines (41 loc) · 1.38 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
DEBUG ?= no
ifeq ($(DEBUG),no)
MUPDF_BUILD ?= release
OPTIMIZE ?= 3
else
MUPDF_BUILD ?= debug
OPTIMIZE ?= g
endif
MUPDF_VERBOSE ?= no
MUPDF_DIR := mupdf
MUPDF_INC := $(MUPDF_DIR)/include
MUPDF_OUT := $(MUPDF_DIR)/build/$(MUPDF_BUILD)
MUPDF_XCFLAGS := -DNOCJK
CXX := nspire-g++
CXXFLAGS := -O$(OPTIMIZE) -Wall -Wextra -std=gnu++14 -marm -I $(MUPDF_INC)
ifeq ($(OPTIMIZE),g)
CXXFLAGS += -g
endif
NPDF_LDFLAGS = -L $(MUPDF_OUT) -lmupdf -lmupdfthird -lfreetype -lz -lm -Wl,--gc-sections
ZEHNFLAGS := --compress --name "nPDF" --author "Legimet" --notice "Document viewer"
OBJS := $(patsubst %.cpp,%.o,$(wildcard *.cpp))
LIBS := $(patsubst %,$(MUPDF_OUT)/lib%.a,mupdf mupdfthird)
EXE := nPDF
all: $(EXE).tns
%.o: %.cpp $(MUPDF_DIR)
$(MUPDF_OUT)/libmupdf.a: $(MUPDF_DIR) generate
$(MUPDF_OUT)/%.a: $(MUPDF_DIR)
$(MAKE) -C $< build/$(MUPDF_BUILD)/$(notdir $@) verbose=$(MUPDF_VERBOSE) build=$(MUPDF_BUILD) OS=ti-nspire XCFLAGS="$(MUPDF_XCFLAGS)"
$(EXE).elf: $(LIBS) $(OBJS)
$(CXX) $(OBJS) -o $@ $(NPDF_LDFLAGS)
$(EXE).zehn.tns: $(EXE).elf
genzehn --input $^ --output $@ $(ZEHNFLAGS)
$(EXE).tns: $(EXE).zehn.tns
make-prg $^ $@
generate: $(MUPDF_DIR)
$(MAKE) -C $< generate verbose=$(MUPDF_VERBOSE) build=$(MUPDF_BUILD)
clean: cleannolibs
-$(MAKE) -C $(MUPDF_DIR) clean build=$(MUPDF_BUILD)
cleannolibs:
$(RM) $(OBJS) $(EXE).elf $(EXE).zehn.tns $(EXE).tns
.PHONY: all generate clean cleannolibs