Rev 4680 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4680 | Rev 4744 | ||
---|---|---|---|
1 | # GNU Makefile |
1 | # GNU Makefile |
2 | 2 | ||
3 | build ?= debug |
3 | build ?= debug |
4 | 4 | ||
5 | OUT := build/$(build) |
5 | OUT := build/$(build) |
6 | GEN := generated |
6 | GEN := generated |
7 | 7 | ||
8 | # --- Variables, Commands, etc... --- |
8 | # --- Variables, Commands, etc... --- |
9 | 9 | ||
10 | default: all |
10 | default: all |
11 | LDFLAGS = -Tinclude/scripts/menuetos_app_v01.ld -nostdlib -L include/lib -melf_i386 |
11 | LDFLAGS = -T/home/a/svn/kolios/programs/develop/libraries/menuetlibc/include/scripts/menuetos_app_v01.ld -nostdlib -L /home/a/svn/kolios/programs/develop/libraries/menuetlibc/include/lib -melf_i386 |
12 | CFLAGS += -Ifitz -Ipdf -Ixps -Iscripts -fno-stack-protector -nostdinc -fno-builtin -m32 -I include -fno-pic |
12 | CFLAGS += -Ifitz -Ipdf -Ixps -Iscripts -fno-stack-protector -nostdinc -fno-builtin -m32 -I/home/a/svn/kolios/programs/develop/libraries/menuetlibc/include -fno-pic |
13 | LIBS += -lfreetype2 -lpng -ljbig2dec -ljpeg -lopenjpeg -lz -lm -lc |
13 | LIBS += -lfreetype2 -lpng -ljbig2dec -ljpeg -lopenjpeg -lz -lm -lc |
14 | 14 | ||
15 | #include Makerules |
15 | #include Makerules |
16 | #include Makethird |
16 | #include Makethird |
17 | 17 | ||
18 | THIRD_LIBS := $(FREETYPE_LIB) |
18 | THIRD_LIBS := $(FREETYPE_LIB) |
19 | THIRD_LIBS += $(JBIG2DEC_LIB) |
19 | THIRD_LIBS += $(JBIG2DEC_LIB) |
20 | THIRD_LIBS += $(JPEG_LIB) |
20 | THIRD_LIBS += $(JPEG_LIB) |
21 | THIRD_LIBS += $(OPENJPEG_LIB) |
21 | THIRD_LIBS += $(OPENJPEG_LIB) |
22 | THIRD_LIBS += $(ZLIB_LIB) |
22 | THIRD_LIBS += $(ZLIB_LIB) |
23 | 23 | ||
24 | ifeq "$(verbose)" "" |
24 | ifeq "$(verbose)" "" |
25 | QUIET_AR = @ echo ' ' ' ' AR $@ ; |
25 | QUIET_AR = @ echo ' ' ' ' AR $@ ; |
26 | QUIET_CC = @ echo ' ' ' ' CC $@ ; |
26 | QUIET_CC = @ echo ' ' ' ' CC $@ ; |
27 | QUIET_GEN = @ echo ' ' ' ' GEN $@ ; |
27 | QUIET_GEN = @ echo ' ' ' ' GEN $@ ; |
28 | QUIET_LINK = @ echo ' ' ' ' LINK $@ ; |
28 | QUIET_LINK = @ echo ' ' ' ' LINK $@ ; |
29 | QUIET_MKDIR = @ echo ' ' ' ' MKDIR $@ ; |
29 | QUIET_MKDIR = @ echo ' ' ' ' MKDIR $@ ; |
30 | endif |
30 | endif |
31 | 31 | ||
32 | CC_CMD = $(QUIET_CC) $(CC) $(CFLAGS) -o $@ -c $< |
32 | CC_CMD = $(QUIET_CC) $(CC) $(CFLAGS) -o $@ -c $< |
33 | AR_CMD = $(QUIET_AR) $(AR) cru $@ $^ |
33 | AR_CMD = $(QUIET_AR) $(AR) cru $@ $^ |
34 | LINK_CMD = $(QUIET_LINK) ld $(LDFLAGS) -o $@ include/crt0.o $^ build/debug/snprintf.o $(LIBS) |
34 | LINK_CMD = $(QUIET_LINK) ld $(LDFLAGS) -o $@ /home/a/svn/kolios/programs/develop/libraries/menuetlibc/stub/crt0.o $^ build/debug/snprintf.o $(LIBS) |
35 | MKDIR_CMD = $(QUIET_MKDIR) mkdir -p $@ |
35 | MKDIR_CMD = $(QUIET_MKDIR) mkdir -p $@ |
36 | 36 | ||
37 | # --- Rules --- |
37 | # --- Rules --- |
38 | 38 | ||
39 | $(OUT) $(GEN) : |
39 | $(OUT) $(GEN) : |
40 | $(MKDIR_CMD) |
40 | $(MKDIR_CMD) |
41 | 41 | ||
42 | $(OUT)/%.a : |
42 | $(OUT)/%.a : |
43 | $(AR_CMD) |
43 | $(AR_CMD) |
44 | 44 | ||
45 | $(OUT)/% : $(OUT)/%.o |
45 | $(OUT)/% : $(OUT)/%.o |
46 | $(LINK_CMD) |
46 | $(LINK_CMD) |
47 | 47 | ||
48 | $(OUT)/%.o : fitz/%.c fitz/fitz.h | $(OUT) |
48 | $(OUT)/%.o : fitz/%.c fitz/fitz.h | $(OUT) |
49 | $(CC_CMD) |
49 | $(CC_CMD) |
50 | $(OUT)/%.o : draw/%.c fitz/fitz.h | $(OUT) |
50 | $(OUT)/%.o : draw/%.c fitz/fitz.h | $(OUT) |
51 | $(CC_CMD) |
51 | $(CC_CMD) |
52 | $(OUT)/%.o : pdf/%.c fitz/fitz.h pdf/mupdf.h | $(OUT) |
52 | $(OUT)/%.o : pdf/%.c fitz/fitz.h pdf/mupdf.h | $(OUT) |
53 | $(CC_CMD) |
53 | $(CC_CMD) |
54 | $(OUT)/%.o : xps/%.c fitz/fitz.h xps/muxps.h | $(OUT) |
54 | $(OUT)/%.o : xps/%.c fitz/fitz.h xps/muxps.h | $(OUT) |
55 | $(CC_CMD) |
55 | $(CC_CMD) |
56 | $(OUT)/%.o : apps/%.c fitz/fitz.h pdf/mupdf.h xps/muxps.h | $(OUT) |
56 | $(OUT)/%.o : apps/%.c fitz/fitz.h pdf/mupdf.h xps/muxps.h | $(OUT) |
57 | $(CC_CMD) |
57 | $(CC_CMD) |
58 | $(OUT)/%.o : scripts/%.c | $(OUT) |
58 | $(OUT)/%.o : scripts/%.c | $(OUT) |
59 | $(CC_CMD) |
59 | $(CC_CMD) |
60 | 60 | ||
61 | .PRECIOUS : $(OUT)/%.o # Keep intermediates from chained rules |
61 | .PRECIOUS : $(OUT)/%.o # Keep intermediates from chained rules |
62 | 62 | ||
63 | # --- Fitz, MuPDF and MuXPS libraries --- |
63 | # --- Fitz, MuPDF and MuXPS libraries --- |
64 | 64 | ||
65 | FITZ_LIB := $(OUT)/libfitz.a |
65 | FITZ_LIB := $(OUT)/libfitz.a |
66 | MUPDF_LIB := $(OUT)/libmupdf.a |
66 | MUPDF_LIB := $(OUT)/libmupdf.a |
67 | MUXPS_LIB := $(OUT)/libmuxps.a |
67 | MUXPS_LIB := $(OUT)/libmuxps.a |
68 | 68 | ||
69 | FITZ_SRC := $(notdir $(wildcard fitz/*.c draw/*.c)) |
69 | FITZ_SRC := $(notdir $(wildcard fitz/*.c draw/*.c)) |
70 | MUPDF_SRC := $(notdir $(wildcard pdf/*.c)) |
70 | MUPDF_SRC := $(notdir $(wildcard pdf/*.c)) |
71 | MUXPS_SRC := $(notdir $(wildcard xps/*.c)) |
71 | MUXPS_SRC := $(notdir $(wildcard xps/*.c)) |
72 | 72 | ||
73 | $(FITZ_LIB) : $(addprefix $(OUT)/, $(FITZ_SRC:%.c=%.o)) |
73 | $(FITZ_LIB) : $(addprefix $(OUT)/, $(FITZ_SRC:%.c=%.o)) |
74 | $(MUPDF_LIB) : $(addprefix $(OUT)/, $(MUPDF_SRC:%.c=%.o)) |
74 | $(MUPDF_LIB) : $(addprefix $(OUT)/, $(MUPDF_SRC:%.c=%.o)) |
75 | $(MUXPS_LIB) : $(addprefix $(OUT)/, $(MUXPS_SRC:%.c=%.o)) |
75 | $(MUXPS_LIB) : $(addprefix $(OUT)/, $(MUXPS_SRC:%.c=%.o)) |
76 | 76 | ||
77 | libs: $(MUXPS_LIB) $(MUPDF_LIB) $(FITZ_LIB) $(THIRD_LIBS) |
77 | libs: $(MUXPS_LIB) $(MUPDF_LIB) $(FITZ_LIB) $(THIRD_LIBS) |
78 | @ echo MuPDF/XPS and underlying libraries built |
78 | @ echo MuPDF/XPS and underlying libraries built |
79 | 79 | ||
80 | # --- Generated CMAP and FONT files --- |
80 | # --- Generated CMAP and FONT files --- |
81 | 81 | ||
82 | CMAPDUMP := scripts/cmapdump |
82 | CMAPDUMP := scripts/cmapdump |
83 | FONTDUMP := scripts/fontdump |
83 | FONTDUMP := scripts/fontdump |
84 | 84 | ||
85 | CMAP_CNS_SRC := $(wildcard cmaps/cns/*) |
85 | CMAP_CNS_SRC := $(wildcard cmaps/cns/*) |
86 | CMAP_GB_SRC := $(wildcard cmaps/gb/*) |
86 | CMAP_GB_SRC := $(wildcard cmaps/gb/*) |
87 | CMAP_JAPAN_SRC := $(wildcard cmaps/japan/*) |
87 | CMAP_JAPAN_SRC := $(wildcard cmaps/japan/*) |
88 | CMAP_KOREA_SRC := $(wildcard cmaps/korea/*) |
88 | CMAP_KOREA_SRC := $(wildcard cmaps/korea/*) |
89 | FONT_BASE14_SRC := $(wildcard fonts/*.cff) |
89 | FONT_BASE14_SRC := $(wildcard fonts/*.cff) |
90 | FONT_DROID_SRC := fonts/droid/DroidSans.ttf fonts/droid/DroidSansMono.ttf |
90 | FONT_DROID_SRC := fonts/droid/DroidSans.ttf fonts/droid/DroidSansMono.ttf |
91 | FONT_CJK_SRC := fonts/droid/DroidSansFallback.ttf |
91 | FONT_CJK_SRC := fonts/droid/DroidSansFallback.ttf |
92 | 92 | ||
93 | $(GEN)/cmap_cns.h : $(CMAP_CNS_SRC) |
93 | $(GEN)/cmap_cns.h : $(CMAP_CNS_SRC) |
94 | $(QUIET_GEN) ./$(CMAPDUMP) $@ $(CMAP_CNS_SRC) |
94 | $(QUIET_GEN) ./$(CMAPDUMP) $@ $(CMAP_CNS_SRC) |
95 | $(GEN)/cmap_gb.h : $(CMAP_GB_SRC) |
95 | $(GEN)/cmap_gb.h : $(CMAP_GB_SRC) |
96 | $(QUIET_GEN) ./$(CMAPDUMP) $@ $(CMAP_GB_SRC) |
96 | $(QUIET_GEN) ./$(CMAPDUMP) $@ $(CMAP_GB_SRC) |
97 | $(GEN)/cmap_japan.h : $(CMAP_JAPAN_SRC) |
97 | $(GEN)/cmap_japan.h : $(CMAP_JAPAN_SRC) |
98 | $(QUIET_GEN) ./$(CMAPDUMP) $@ $(CMAP_JAPAN_SRC) |
98 | $(QUIET_GEN) ./$(CMAPDUMP) $@ $(CMAP_JAPAN_SRC) |
99 | $(GEN)/cmap_korea.h : $(CMAP_KOREA_SRC) |
99 | $(GEN)/cmap_korea.h : $(CMAP_KOREA_SRC) |
100 | $(QUIET_GEN) ./$(CMAPDUMP) $@ $(CMAP_KOREA_SRC) |
100 | $(QUIET_GEN) ./$(CMAPDUMP) $@ $(CMAP_KOREA_SRC) |
101 | 101 | ||
102 | $(GEN)/font_base14.h : $(FONT_BASE14_SRC) |
102 | $(GEN)/font_base14.h : $(FONT_BASE14_SRC) |
103 | $(QUIET_GEN) ./$(FONTDUMP) $@ $(FONT_BASE14_SRC) |
103 | $(QUIET_GEN) ./$(FONTDUMP) $@ $(FONT_BASE14_SRC) |
104 | $(GEN)/font_droid.h : $(FONT_DROID_SRC) |
104 | $(GEN)/font_droid.h : $(FONT_DROID_SRC) |
105 | $(QUIET_GEN) ./$(FONTDUMP) $@ $(FONT_DROID_SRC) |
105 | $(QUIET_GEN) ./$(FONTDUMP) $@ $(FONT_DROID_SRC) |
106 | $(GEN)/font_cjk.h : $(FONT_CJK_SRC) |
106 | $(GEN)/font_cjk.h : $(FONT_CJK_SRC) |
107 | $(QUIET_GEN) ./$(FONTDUMP) $@ $(FONT_CJK_SRC) |
107 | $(QUIET_GEN) ./$(FONTDUMP) $@ $(FONT_CJK_SRC) |
108 | 108 | ||
109 | CMAP_HDR := $(addprefix $(GEN)/, cmap_cns.h cmap_gb.h cmap_japan.h cmap_korea.h) |
109 | CMAP_HDR := $(addprefix $(GEN)/, cmap_cns.h cmap_gb.h cmap_japan.h cmap_korea.h) |
110 | FONT_HDR := $(GEN)/font_base14.h $(GEN)/font_droid.h $(GEN)/font_cjk.h |
110 | FONT_HDR := $(GEN)/font_base14.h $(GEN)/font_droid.h $(GEN)/font_cjk.h |
111 | 111 | ||
112 | ifeq "$(CROSSCOMPILE)" "" |
112 | ifeq "$(CROSSCOMPILE)" "" |
113 | $(CMAP_HDR) : $(CMAPDUMP) | $(GEN) |
113 | $(CMAP_HDR) : $(CMAPDUMP) | $(GEN) |
114 | $(FONT_HDR) : $(FONTDUMP) | $(GEN) |
114 | $(FONT_HDR) : $(FONTDUMP) | $(GEN) |
115 | endif |
115 | endif |
116 | 116 | ||
117 | generate: $(CMAP_HDR) $(FONT_HDR) |
117 | generate: $(CMAP_HDR) $(FONT_HDR) |
118 | 118 | ||
119 | $(OUT)/pdf_cmap_table.o : $(CMAP_HDR) |
119 | $(OUT)/pdf_cmap_table.o : $(CMAP_HDR) |
120 | $(OUT)/pdf_fontfile.o : $(FONT_HDR) |
120 | $(OUT)/pdf_fontfile.o : $(FONT_HDR) |
121 | $(OUT)/cmapdump.o : pdf/pdf_cmap.c pdf/pdf_cmap_parse.c |
121 | $(OUT)/cmapdump.o : pdf/pdf_cmap.c pdf/pdf_cmap_parse.c |
122 | 122 | ||
123 | # --- Tools and Apps --- |
123 | # --- Tools and Apps --- |
124 | 124 | ||
125 | PDF_APPS := $(addprefix $(OUT)/, pdfdraw pdfclean pdfextract pdfinfo pdfshow) |
125 | PDF_APPS := $(addprefix $(OUT)/, pdfdraw pdfclean pdfextract pdfinfo pdfshow) |
126 | XPS_APPS := $(addprefix $(OUT)/, xpsdraw) |
126 | XPS_APPS := $(addprefix $(OUT)/, xpsdraw) |
127 | 127 | ||
128 | $(PDF_APPS) : $(MUPDF_LIB) $(FITZ_LIB) $(THIRD_LIBS) |
128 | $(PDF_APPS) : $(MUPDF_LIB) $(FITZ_LIB) $(THIRD_LIBS) |
129 | $(XPS_APPS) : $(MUXPS_LIB) $(FITZ_LIB) $(THIRD_LIBS) |
129 | $(XPS_APPS) : $(MUXPS_LIB) $(FITZ_LIB) $(THIRD_LIBS) |
130 | 130 | ||
131 | MUPDF := $(OUT)/mupdf |
131 | MUPDF := $(OUT)/mupdf |
132 | $(MUPDF) : $(MUXPS_LIB) $(MUPDF_LIB) $(FITZ_LIB) $(THIRD_LIBS) |
132 | $(MUPDF) : $(MUXPS_LIB) $(MUPDF_LIB) $(FITZ_LIB) $(THIRD_LIBS) |
133 | ifeq "$(NOX11)" "" |
133 | ifeq "$(NOX11)" "" |
134 | $(MUPDF) : $(addprefix $(OUT)/, kos_main.o pdfapp.o) |
134 | $(MUPDF) : $(addprefix $(OUT)/, kos_main.o pdfapp.o) |
135 | $(LINK_CMD) |
135 | $(LINK_CMD) |
136 | endif |
136 | endif |
137 | 137 | ||
138 | # --- Install --- |
138 | # --- Install --- |
139 | 139 | ||
140 | prefix ?= /usr/local |
140 | prefix ?= /usr/local |
141 | bindir ?= $(prefix)/bin |
141 | bindir ?= $(prefix)/bin |
142 | libdir ?= $(prefix)/lib |
142 | libdir ?= $(prefix)/lib |
143 | incdir ?= $(prefix)/include |
143 | incdir ?= $(prefix)/include |
144 | mandir ?= $(prefix)/share/man |
144 | mandir ?= $(prefix)/share/man |
145 | 145 | ||
146 | install: $(MUXPS_LIB) $(MUPDF_LIB) $(FITZ_LIB) $(PDF_APPS) $(XPS_APPS) $(MUPDF) |
146 | install: $(MUXPS_LIB) $(MUPDF_LIB) $(FITZ_LIB) $(PDF_APPS) $(XPS_APPS) $(MUPDF) |
147 | install -d $(bindir) $(libdir) $(incdir) $(mandir)/man1 |
147 | install -d $(bindir) $(libdir) $(incdir) $(mandir)/man1 |
148 | install $(MUXPS_LIB) $(MUPDF_LIB) $(FITZ_LIB) $(libdir) |
148 | install $(MUXPS_LIB) $(MUPDF_LIB) $(FITZ_LIB) $(libdir) |
149 | install fitz/fitz.h pdf/mupdf.h xps/muxps.h $(incdir) |
149 | install fitz/fitz.h pdf/mupdf.h xps/muxps.h $(incdir) |
150 | install $(PDF_APPS) $(XPS_APPS) $(MUPDF) $(bindir) |
150 | install $(PDF_APPS) $(XPS_APPS) $(MUPDF) $(bindir) |
151 | install $(wildcard apps/man/*.1) $(mandir)/man1 |
151 | install $(wildcard apps/man/*.1) $(mandir)/man1 |
152 | 152 | ||
153 | # --- Clean and Default --- |
153 | # --- Clean and Default --- |
154 | 154 | ||
155 | all: $(THIRD_LIBS) $(FITZ_LIB) $(PDF_APPS) $(XPS_APPS) $(MUPDF) |
155 | all: $(THIRD_LIBS) $(FITZ_LIB) $(PDF_APPS) $(XPS_APPS) $(MUPDF) |
156 | 156 | ||
157 | clean: |
157 | clean: |
158 | rm -rf $(OUT) |
158 | rm -rf $(OUT) |
159 | nuke: |
159 | nuke: |
160 | rm -rf build/* $(GEN) |
160 | rm -rf build/* $(GEN) |
161 | 161 | ||
162 | .PHONY: all clean nuke install |
162 | .PHONY: all clean nuke install |
163 | AR_CMD> |
163 | AR_CMD> |