summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2010-06-15 15:17:47 +0200
committerTor Andersson <tor@ghostscript.com>2010-06-15 15:17:47 +0200
commit7d5d5d8c77f6047113d762017fd829bd668f5b5e (patch)
tree84bf1d75254cbd96ff349a6ab1fa6b0a620bf9ba
parent1746eaca2a013e39b29c4036caec88c3a0ba92d5 (diff)
downloadmupdf-7d5d5d8c77f6047113d762017fd829bd668f5b5e.tar.xz
Rearrange in Makerules and Makethird to remove cyclical dependencies.
-rw-r--r--Makefile30
-rw-r--r--Makerules39
-rw-r--r--Makethird13
-rw-r--r--fitz/fitz_base.h4
4 files changed, 49 insertions, 37 deletions
diff --git a/Makefile b/Makefile
index 3f82484e..b0937aab 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
# GNU Makefile for MuPDF
#
-# make build=release prefix=/usr/local install
+# make build=release prefix=/usr/local verbose=true install
#
default: all
@@ -21,27 +21,31 @@ ifneq "$(pregen)" ""
GENDIR := $(pregen)
endif
-# Compiler flags and configuration options are kept in a separate file.
-# This file includes some tests based on variables set by Makethird.
+# Compiler flags and configuration options are kept in Makerules.
+# Thirdparty libs will be built by Makethird if the thirdparty
+# directory exists.
--include Makerules
-
-# Include makefile for third party libraries.
-# They will only be built if the thirdparty directory exists.
-# This changes some variables initially set in Makerules.
+LIBS := -lfreetype -ljbig2dec -lopenjpeg -ljpeg -lz -lm
+-include Makerules
-include Makethird
+CFLAGS += $(THIRD_INCS) $(SYS_FREETYPE_INC)
+LDFLAGS += $(SYS_FREETYPE_LIB)
+
#
# Build commands
#
-CFLAGS += $(THIRD_INCS)
+SILENT := @
+ifneq "$(verbose)" ""
+SILENT :=
+endif
-GENFILE_CMD = @ echo GENFILE $@ && $(firstword $^) $@ $(wordlist 2, 999, $^)
-CC_CMD = @ echo CC $@ && $(CC) -o $@ -c $< $(CFLAGS)
-LD_CMD = @ echo LD $@ && $(LD) -o $@ $^ $(LDFLAGS) $(LIBS)
-AR_CMD = @ echo AR $@ && $(AR) cru $@ $^
+GENFILE_CMD = $(SILENT) echo GENFILE $@ && $(firstword $^) $@ $(wordlist 2, 999, $^)
+CC_CMD = $(SILENT) echo CC $@ && $(CC) -o $@ -c $< $(CFLAGS)
+LD_CMD = $(SILENT) echo LD $@ && $(LD) -o $@ $^ $(LDFLAGS) $(LIBS)
+AR_CMD = $(SILENT) echo AR $@ && $(AR) cru $@ $^
#
# Directories
diff --git a/Makerules b/Makerules
index 80aa17f7..d111ce30 100644
--- a/Makerules
+++ b/Makerules
@@ -3,12 +3,11 @@
OS := $(shell uname)
OS := $(OS:MINGW%=MINGW)
-LIBS := -lfreetype -ljbig2dec -lopenjpeg -ljpeg -lz -lm
-CFLAGS := -Wall --std=gnu99 -Ifitz -Imupdf
-LDFLAGS =
-CC = cc
-LD = $(CC)
-AR = ar
+CFLAGS := -Wall -Ifitz -Imupdf
+LDFLAGS :=
+CC := cc
+LD := $(CC)
+AR := ar
ifeq "$(build)" "debug"
CFLAGS += -g -O0
@@ -19,36 +18,38 @@ CFLAGS += -O3
endif
ifeq "$(OS)" "Linux"
-ifeq "$(freetype_dir)" ""
-CFLAGS += `pkg-config --cflags freetype2`
-LDFLAGS += `pkg-config --libs freetype2`
-endif
-X11LIBS = -lX11 -lXext
+SYS_FREETYPE_INC := `pkg-config --cflags freetype2`
+SYS_FREETYPE_LIB := `pkg-config --libs freetype2`
+
+X11LIBS := -lX11 -lXext
PDFVIEW_EXE = $(X11VIEW_EXE)
+
ifeq "$(build)" "release"
CFLAGS += -mmmx -ftree-vectorize -msse -msse2 -march=k8 -DARCH_X86
ARCH_SRC = archx86.c
endif
+
endif
ifeq "$(OS)" "Darwin"
-CFLAGS += -I$(HOME)/include -I/usr/X11R6/include
-LDFLAGS += -L$(HOME)/lib -L/usr/X11R6/lib
-ifeq "$(freetype_dir)" ""
-CFLAGS += -I/usr/X11R6/include/freetype2
-endif
-X11LIBS = -lX11 -lXext
+SYS_FREETYPE_INC := -I/usr/X11R6/include/freetype2
+CFLAGS += -I/usr/X11R6/include
+LDFLAGS += -L/usr/X11R6/lib
+
+X11LIBS := -lX11 -lXext
PDFVIEW_EXE = $(X11VIEW_EXE)
+
ifeq "$(build)" "release"
CFLAGS += -DARCH_X86_64
-ARCH_SRC = archx86.c
+ARCH_SRC := archx86.c
endif
+
endif
# MinGW build depends on thirdparty
ifeq "$(OS)" "MINGW"
CC = gcc
-W32LIBS = -lgdi32 -lcomdlg32 -luser32 -ladvapi32 -lshell32 -mwindows
+W32LIBS := -lgdi32 -lcomdlg32 -luser32 -ladvapi32 -lshell32 -mwindows
PDFVIEW_EXE = $(WINVIEW_EXE)
endif
diff --git a/Makethird b/Makethird
index 8eb5b885..39e06882 100644
--- a/Makethird
+++ b/Makethird
@@ -14,7 +14,7 @@ ifneq "$(jbig2dec_dir)" ""
THIRD_LIBS += $(JBIG2DEC_LIB)
THIRD_INCS += -I$(jbig2dec_dir)
-LIBS := $(filter-out $(LIBS), -ljbig2dec)
+LIBS := $(filter-out -ljbig2dec, $(LIBS))
JBIG2DEC_SRC=$(addprefix $(jbig2dec_dir)/, \
jbig2.c jbig2_arith.c jbig2_arith_int.c jbig2_arith_iaid.c \
@@ -35,7 +35,7 @@ ifneq "$(openjpeg_dir)" ""
THIRD_LIBS += $(OPENJPEG_LIB)
THIRD_INCS += -I$(openjpeg_dir)
-LIBS := $(filter-out $(LIBS), -lopenjpeg)
+LIBS := $(filter-out -lopenjpeg, $(LIBS))
OPENJPEG_SRC=$(addprefix $(openjpeg_dir)/, \
bio.c cio.c dwt.c event.c image.c \
@@ -55,7 +55,7 @@ ifneq "$(jpeg_dir)" ""
THIRD_LIBS += $(JPEG_LIB)
THIRD_INCS += -I$(jpeg_dir)
-LIBS := $(filter-out $(LIBS), -ljpeg)
+LIBS := $(filter-out -ljpeg, $(LIBS))
JPEG_SRC=$(addprefix $(jpeg_dir)/, \
jaricom.c jcapimin.c jcapistd.c jcarith.c jccoefct.c jccolor.c \
@@ -79,7 +79,7 @@ ifneq "$(zlib_dir)" ""
THIRD_LIBS += $(ZLIB_LIB)
THIRD_INCS += -I$(zlib_dir)
-LIBS := $(filter-out $(LIBS), -lz)
+LIBS := $(filter-out -lz, $(LIBS))
ZLIB_SRC=$(addprefix $(zlib_dir)/, \
adler32.c compress.c crc32.c deflate.c \
@@ -98,7 +98,10 @@ ifneq "$(freetype_dir)" ""
THIRD_LIBS += $(FREETYPE_LIB)
THIRD_INCS += -I$(freetype_dir)/include
-LIBS := $(filter-out $(LIBS), -lfreetype)
+LIBS := $(filter-out -lfreetype, $(LIBS))
+
+SYS_FREETYPE_INC :=
+SYS_FREETYPE_LIB :=
FREETYPE_OBJ=$(addprefix $(OBJDIR)/ft_, \
autofit.o ftbase.o ftbbox.o ftbdf.o ftbitmap.o ftdebug.o ftgasp.o \
diff --git a/fitz/fitz_base.h b/fitz/fitz_base.h
index 7cdfa70c..b6ca40c4 100644
--- a/fitz/fitz_base.h
+++ b/fitz/fitz_base.h
@@ -53,6 +53,10 @@ extern int gettimeofday(struct timeval *tv, struct timezone *tz);
#else /* C99 or close enough */
+#ifdef __GNUC__
+#define restrict __restrict
+#endif
+
#include <unistd.h>
#endif