summaryrefslogtreecommitdiff
path: root/Makethird
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2011-04-07 02:14:22 +0200
committerTor Andersson <tor.andersson@artifex.com>2011-04-07 02:14:22 +0200
commit7e863ba7eff4fe138ccb0aa7f28744a00aa96c71 (patch)
tree88d72dec489fd8633b6583fb26aa8993bf261f78 /Makethird
parent71b44f14fd09fe3cb404f6f9225b3e4987328e15 (diff)
downloadmupdf-7e863ba7eff4fe138ccb0aa7f28744a00aa96c71.tar.xz
Simplify makefiles by use of $(wildcard) and chained rules.
Diffstat (limited to 'Makethird')
-rw-r--r--Makethird212
1 files changed, 100 insertions, 112 deletions
diff --git a/Makethird b/Makethird
index e56020c9..64f85ff3 100644
--- a/Makethird
+++ b/Makethird
@@ -1,113 +1,108 @@
# GNU Makefile for third party libraries used by MuPDF
#
# If thirdparty libraries are supplied, they will be built as
-# static libraries. Download and unzip the the mupdf-thirdparty.zip archive
-# in the source directory.
+# static libraries. Download and unzip the the mupdf-thirdparty.zip
+# archive in the source directory.
-freetype_dir := $(wildcard thirdparty/freetype*)
-jbig2dec_dir := $(wildcard thirdparty/jbig2dec*)
-jpeg_dir := $(wildcard thirdparty/jpeg*)
-openjpeg_dir := $(wildcard thirdparty/openjpeg*/libopenjpeg)
-zlib_dir := $(wildcard thirdparty/zlib*)
+FREETYPE_DIR := $(wildcard thirdparty/freetype*)
+JBIG2DEC_DIR := $(wildcard thirdparty/jbig2dec*)
+JPEG_DIR := $(wildcard thirdparty/jpeg*)
+OPENJPEG_DIR := $(wildcard thirdparty/openjpeg*/libopenjpeg)
+ZLIB_DIR := $(wildcard thirdparty/zlib*)
-ifneq "$(freetype_dir)" ""
+# --- FreeType 2 ---
-THIRD_LIBS += $(FREETYPE_LIB)
-THIRD_INCS += -I$(freetype_dir)/include
+ifneq "$(FREETYPE_DIR)" ""
+CFLAGS += -I$(FREETYPE_DIR)/include
LIBS := $(filter-out -lfreetype, $(LIBS))
-
-SYS_FREETYPE_INC :=
-
-FREETYPE_OBJ=$(addprefix $(OBJDIR)/ft_, \
- ftbase.o ftbbox.o ftbitmap.o ftgasp.o ftglyph.o ftinit.o \
- ftstroke.o ftsynth.o ftsystem.o fttype1.o ftxf86.o \
- cff.o type1cid.o psaux.o psnames.o smooth.o sfnt.o truetype.o type1.o )
-FREETYPE_LIB=$(OBJDIR)/libfreetype.a
-$(FREETYPE_LIB): $(FREETYPE_OBJ)
- $(AR_CMD)
-
-FTCC_CMD = $(CC_CMD) -DFT2_BUILD_LIBRARY -DDARWIN_NO_CARBON \
+FREETYPE_LIB := $(OUT)/libfreetype.a
+
+FREETYPE_SRC := \
+ ftbase.c \
+ ftbbox.c \
+ ftbitmap.c \
+ ftgasp.c \
+ ftglyph.c \
+ ftinit.c \
+ ftstroke.c \
+ ftsynth.c \
+ ftsystem.c \
+ fttype1.c \
+ ftxf86.c \
+ cff.c \
+ psaux.c \
+ psnames.c \
+ sfnt.c \
+ smooth.c \
+ truetype.c \
+ type1.c \
+ type1cid.c \
+
+$(FREETYPE_LIB): $(addprefix $(OUT)/ft_, $(FREETYPE_SRC:%.c=%.o))
+
+FT_CFLAGS := -DFT2_BUILD_LIBRARY -DDARWIN_NO_CARBON \
'-DFT_CONFIG_MODULES_H="slimftmodules.h"' \
'-DFT_CONFIG_OPTIONS_H="slimftoptions.h"'
-$(OBJDIR)/ft_ftbase.o: $(freetype_dir)/src/base/ftbase.c
- $(FTCC_CMD)
-$(OBJDIR)/ft_ftbbox.o: $(freetype_dir)/src/base/ftbbox.c
- $(FTCC_CMD)
-$(OBJDIR)/ft_ftbitmap.o: $(freetype_dir)/src/base/ftbitmap.c
- $(FTCC_CMD)
-$(OBJDIR)/ft_ftgasp.o: $(freetype_dir)/src/base/ftgasp.c
- $(FTCC_CMD)
-$(OBJDIR)/ft_ftglyph.o: $(freetype_dir)/src/base/ftglyph.c
- $(FTCC_CMD)
-$(OBJDIR)/ft_ftinit.o: $(freetype_dir)/src/base/ftinit.c
- $(FTCC_CMD)
-$(OBJDIR)/ft_ftstroke.o: $(freetype_dir)/src/base/ftstroke.c
- $(FTCC_CMD)
-$(OBJDIR)/ft_ftsynth.o: $(freetype_dir)/src/base/ftsynth.c
- $(FTCC_CMD)
-$(OBJDIR)/ft_ftsystem.o: $(freetype_dir)/src/base/ftsystem.c
- $(FTCC_CMD)
-$(OBJDIR)/ft_fttype1.o: $(freetype_dir)/src/base/fttype1.c
- $(FTCC_CMD)
-$(OBJDIR)/ft_ftxf86.o: $(freetype_dir)/src/base/ftxf86.c
- $(FTCC_CMD)
-$(OBJDIR)/ft_cff.o: $(freetype_dir)/src/cff/cff.c
- $(FTCC_CMD)
-$(OBJDIR)/ft_type1cid.o: $(freetype_dir)/src/cid/type1cid.c
- $(FTCC_CMD)
-$(OBJDIR)/ft_psaux.o: $(freetype_dir)/src/psaux/psaux.c
- $(FTCC_CMD)
-$(OBJDIR)/ft_psnames.o: $(freetype_dir)/src/psnames/psnames.c
- $(FTCC_CMD)
-$(OBJDIR)/ft_smooth.o: $(freetype_dir)/src/smooth/smooth.c
- $(FTCC_CMD)
-$(OBJDIR)/ft_sfnt.o: $(freetype_dir)/src/sfnt/sfnt.c
- $(FTCC_CMD)
-$(OBJDIR)/ft_truetype.o: $(freetype_dir)/src/truetype/truetype.c
- $(FTCC_CMD)
-$(OBJDIR)/ft_type1.o: $(freetype_dir)/src/type1/type1.c
- $(FTCC_CMD)
-
+$(OUT)/ft_%.o: $(FREETYPE_DIR)/src/base/%.c | $(OUT)
+ $(CC_CMD) $(FT_CFLAGS)
+$(OUT)/ft_%.o: $(FREETYPE_DIR)/src/cff/%.c | $(OUT)
+ $(CC_CMD) $(FT_CFLAGS)
+$(OUT)/ft_%.o: $(FREETYPE_DIR)/src/cid/%.c | $(OUT)
+ $(CC_CMD) $(FT_CFLAGS)
+$(OUT)/ft_%.o: $(FREETYPE_DIR)/src/psaux/%.c | $(OUT)
+ $(CC_CMD) $(FT_CFLAGS)
+$(OUT)/ft_%.o: $(FREETYPE_DIR)/src/psnames/%.c | $(OUT)
+ $(CC_CMD) $(FT_CFLAGS)
+$(OUT)/ft_%.o: $(FREETYPE_DIR)/src/smooth/%.c | $(OUT)
+ $(CC_CMD) $(FT_CFLAGS)
+$(OUT)/ft_%.o: $(FREETYPE_DIR)/src/sfnt/%.c | $(OUT)
+ $(CC_CMD) $(FT_CFLAGS)
+$(OUT)/ft_%.o: $(FREETYPE_DIR)/src/truetype/%.c | $(OUT)
+ $(CC_CMD) $(FT_CFLAGS)
+$(OUT)/ft_%.o: $(FREETYPE_DIR)/src/type1/%.c | $(OUT)
+ $(CC_CMD) $(FT_CFLAGS)
+
+else
+CFLAGS += $(SYS_FREETYPE_INC)
endif
-ifneq "$(jbig2dec_dir)" ""
+# --- JBIG2DEC ---
-THIRD_LIBS += $(JBIG2DEC_LIB)
-THIRD_INCS += -I$(jbig2dec_dir)
+ifneq "$(JBIG2DEC_DIR)" ""
+CFLAGS += -I$(JBIG2DEC_DIR)
LIBS := $(filter-out -ljbig2dec, $(LIBS))
+JBIG2DEC_LIB := $(OUT)/libjbig2dec.a
-JBIG2DEC_SRC=$(addprefix $(jbig2dec_dir)/, \
+JBIG2DEC_SRC := \
jbig2.c \
jbig2_arith.c \
- jbig2_arith_int.c \
jbig2_arith_iaid.c \
+ jbig2_arith_int.c \
+ jbig2_generic.c \
jbig2_huffman.c \
- jbig2_segment.c \
+ jbig2_image.c \
+ jbig2_metadata.c \
+ jbig2_mmr.c \
jbig2_page.c \
+ jbig2_refinement.c \
+ jbig2_segment.c \
jbig2_symbol_dict.c \
jbig2_text.c \
- jbig2_generic.c \
- jbig2_refinement.c \
- jbig2_mmr.c \
- jbig2_image.c \
- jbig2_metadata.c )
-JBIG2DEC_OBJ=$(JBIG2DEC_SRC:$(jbig2dec_dir)/%.c=$(OBJDIR)/%.o)
-JBIG2DEC_LIB=$(OBJDIR)/libjbig2dec.a
-$(JBIG2DEC_LIB): $(JBIG2DEC_OBJ)
- $(AR_CMD)
-$(OBJDIR)/%.o: $(jbig2dec_dir)/%.c
- $(CC_CMD) -DHAVE_STDINT_H
+$(JBIG2DEC_LIB): $(addprefix $(OUT)/, $(JBIG2DEC_SRC:%.c=%.o))
+$(OUT)/%.o: $(JBIG2DEC_DIR)/%.c | $(OUT)
+ $(CC_CMD) -DHAVE_STDINT_H
endif
-ifneq "$(jpeg_dir)" ""
+# --- JPEG library from IJG ---
-THIRD_LIBS += $(JPEG_LIB)
-THIRD_INCS += -I$(jpeg_dir)
+ifneq "$(JPEG_DIR)" ""
+CFLAGS += -I$(JPEG_DIR)
LIBS := $(filter-out -ljpeg, $(LIBS))
+JPEG_LIB := $(OUT)/libjpeg.a
-JPEG_SRC=$(addprefix $(jpeg_dir)/, \
+JPEG_SRC := \
jaricom.c \
jcomapi.c \
jdapimin.c \
@@ -134,27 +129,25 @@ JPEG_SRC=$(addprefix $(jpeg_dir)/, \
jidctflt.c \
jidctfst.c \
jidctint.c \
+ jmemansi.c \
+ jmemmgr.c \
jquant1.c \
jquant2.c \
jutils.c \
- jmemmgr.c \
- jmemansi.c)
-JPEG_OBJ=$(JPEG_SRC:$(jpeg_dir)/%.c=$(OBJDIR)/jpeg_%.o)
-JPEG_LIB=$(OBJDIR)/libjpeg.a
-$(JPEG_LIB): $(JPEG_OBJ)
- $(AR_CMD)
-$(OBJDIR)/jpeg_%.o: $(jpeg_dir)/%.c
- $(CC_CMD) -Dmain=xxxmain
+$(JPEG_LIB): $(addprefix $(OUT)/jpeg_, $(JPEG_SRC:%.c=%.o))
+$(OUT)/jpeg_%.o: $(JPEG_DIR)/%.c | $(OUT)
+ $(CC_CMD) -Dmain=xxxmain
endif
-ifneq "$(openjpeg_dir)" ""
+# --- OpenJPEG ---
-THIRD_LIBS += $(OPENJPEG_LIB)
-THIRD_INCS += -I$(openjpeg_dir)
+ifneq "$(OPENJPEG_DIR)" ""
+CFLAGS += -I$(OPENJPEG_DIR)
LIBS := $(filter-out -lopenjpeg, $(LIBS))
+OPENJPEG_LIB := $(OUT)/libopenjpeg.a
-OPENJPEG_SRC=$(addprefix $(openjpeg_dir)/, \
+OPENJPEG_SRC := \
bio.c \
cio.c \
dwt.c \
@@ -172,23 +165,21 @@ OPENJPEG_SRC=$(addprefix $(openjpeg_dir)/, \
t1.c \
t2.c \
tcd.c \
- tgt.c )
-OPENJPEG_OBJ=$(OPENJPEG_SRC:$(openjpeg_dir)/%.c=$(OBJDIR)/opj_%.o)
-OPENJPEG_LIB=$(OBJDIR)/libopenjpeg.a
-$(OPENJPEG_LIB): $(OPENJPEG_OBJ)
- $(AR_CMD)
-$(OBJDIR)/opj_%.o: $(openjpeg_dir)/%.c
- $(CC_CMD) -DOPJ_STATIC
+ tgt.c \
+$(OPENJPEG_LIB): $(addprefix $(OUT)/opj_, $(OPENJPEG_SRC:%.c=%.o))
+$(OUT)/opj_%.o: $(OPENJPEG_DIR)/%.c | $(OUT)
+ $(CC_CMD) -DOPJ_STATIC
endif
-ifneq "$(zlib_dir)" ""
+# --- ZLIB ---
-THIRD_LIBS += $(ZLIB_LIB)
-THIRD_INCS += -I$(zlib_dir)
+ifneq "$(ZLIB_DIR)" ""
+CFLAGS += -I$(ZLIB_DIR)
LIBS := $(filter-out -lz, $(LIBS))
+ZLIB_LIB := $(OUT)/libz.a
-ZLIB_SRC=$(addprefix $(zlib_dir)/, \
+ZLIB_SRC := \
adler32.c \
compress.c \
crc32.c \
@@ -198,12 +189,9 @@ ZLIB_SRC=$(addprefix $(zlib_dir)/, \
inftrees.c \
trees.c \
uncompr.c \
- zutil.c )
-ZLIB_OBJ=$(ZLIB_SRC:$(zlib_dir)/%.c=$(OBJDIR)/zlib_%.o)
-ZLIB_LIB=$(OBJDIR)/libz.a
-$(ZLIB_LIB): $(ZLIB_OBJ)
- $(AR_CMD)
-$(OBJDIR)/zlib_%.o: $(zlib_dir)/%.c
- $(CC_CMD)
+ zutil.c \
+$(ZLIB_LIB): $(addprefix $(OUT)/zlib_, $(ZLIB_SRC:%.c=%.o))
+$(OUT)/zlib_%.o: $(ZLIB_DIR)/%.c | $(OUT)
+ $(CC_CMD)
endif