Commit c7be2041b8c97129323a8a7ad6d8da0310d371f1

Authored by Jay Berkenbilt
1 parent dd66ea81

include external-libs

git-svn-id: svn+q:///qpdf/trunk@761 71b93d88-0707-0410-a8cf-f5a4172ac649
Makefile
@@ -30,7 +30,8 @@ @@ -30,7 +30,8 @@
30 # install to install in a separate location. This is useful for 30 # install to install in a separate location. This is useful for
31 # packagers. 31 # packagers.
32 32
33 -BUILD_ITEMS = manual libqpdf zlib-flate libtests qpdf examples 33 +#XXX
  34 +BUILD_ITEMS = manual external-libs libqpdf zlib-flate libtests qpdf examples
34 OUTPUT_DIR = build 35 OUTPUT_DIR = build
35 ALL_TARGETS = 36 ALL_TARGETS =
36 37
external-libs/Makefile 0 → 100644
  1 +include ../make/proxy.mk
external-libs/build.mk 0 → 100644
  1 +TARGETS_external-libs = external-libs/$(OUTPUT_DIR)/libexternal.a
  2 +INCLUDES_external-libs = external-libs/zlib external-libs/pcre \
  3 + external-libs/$(OUTPUT_DIR)
  4 +
  5 +SRCS_external-libs_zlib = \
  6 + external-libs/zlib/adler32.c \
  7 + external-libs/zlib/compress.c \
  8 + external-libs/zlib/crc32.c \
  9 + external-libs/zlib/gzio.c \
  10 + external-libs/zlib/uncompr.c \
  11 + external-libs/zlib/deflate.c \
  12 + external-libs/zlib/trees.c \
  13 + external-libs/zlib/zutil.c \
  14 + external-libs/zlib/inflate.c \
  15 + external-libs/zlib/infback.c \
  16 + external-libs/zlib/inftrees.c \
  17 + external-libs/zlib/inffast.c \
  18 +
  19 +SRCS_external-libs_pcre = \
  20 + external-libs/pcre/maketables.c \
  21 + external-libs/pcre/get.c \
  22 + external-libs/pcre/study.c \
  23 + external-libs/pcre/pcre.c
  24 +
  25 +SRCS_external-libs = $(SRCS_external-libs_zlib) $(SRCS_external-libs_pcre)
  26 +
  27 +external-libs/$(OUTPUT_DIR)/pcre.$(LOBJ): external-libs/$(OUTPUT_DIR)/chartables.c
  28 +
  29 +external-libs/$(OUTPUT_DIR)/chartables.c: external-libs/$(OUTPUT_DIR)/$(call binname,dftables)
  30 + external-libs/$(OUTPUT_DIR)/$(call binname,dftables) \
  31 + external-libs/$(OUTPUT_DIR)/chartables.c
  32 +
  33 +external-libs/$(OUTPUT_DIR)/$(call binname,dftables):
  34 + $(CC) -o $@ external-libs/pcre/dftables.c
  35 +
  36 +# -----
  37 +
  38 +OBJS_external-libs_zlib = $(call c_src_to_lobj,$(subst zlib/,,$(SRCS_external-libs_zlib)))
  39 +OBJS_external-libs_pcre = $(call c_src_to_lobj,$(subst pcre/,,$(SRCS_external-libs_pcre)))
  40 +
  41 +OBJS_external-libs = $(OBJS_external-libs_zlib) $(OBJS_external-libs_pcre)
  42 +
  43 +x:
  44 + @echo $(call lobj_to_dep,$(OBJS_external-libs))
  45 +
  46 +ifeq ($(GENDEPS),1)
  47 +-include $(call lobj_to_dep,$(OBJS_external-libs))
  48 +endif
  49 +
  50 +$(OBJS_external-libs_zlib): external-libs/$(OUTPUT_DIR)/%.$(LOBJ): external-libs/zlib/%.c
  51 + $(call c_libcompile,$<,$(INCLUDES_external-libs))
  52 +
  53 +$(OBJS_external-libs_pcre): external-libs/$(OUTPUT_DIR)/%.$(LOBJ): external-libs/pcre/%.c
  54 + $(call c_libcompile,$<,$(INCLUDES_external-libs))
  55 +
  56 +$(TARGETS_external-libs): $(OBJS_external-libs)
  57 + $(call makeslib,$(OBJS_external-libs),$(TARGETS_external-libs))
libqpdf/build.mk
1 TARGETS_libqpdf = libqpdf/$(OUTPUT_DIR)/$(call libname,qpdf) 1 TARGETS_libqpdf = libqpdf/$(OUTPUT_DIR)/$(call libname,qpdf)
2 2
  3 +$(TARGETS_libqpdf): $(TARGETS_external-libs)
  4 +
3 INCLUDES_libqpdf = include libqpdf 5 INCLUDES_libqpdf = include libqpdf
4 6
5 SRCS_libqpdf = \ 7 SRCS_libqpdf = \
make/gcc-linux.mk
@@ -28,7 +28,7 @@ endef @@ -28,7 +28,7 @@ endef
28 # Usage: $(call c_compile,src,includes) 28 # Usage: $(call c_compile,src,includes)
29 define c_compile 29 define c_compile
30 $(CC) $(CPPFLAGS) $(CFLAGS) \ 30 $(CC) $(CPPFLAGS) $(CFLAGS) \
31 - $(call depflags,$(basename $(call src_to_obj,$(1)))) \ 31 + $(call depflags,$(basename $(call c_src_to_obj,$(1)))) \
32 $(foreach I,$(2),-I$(I)) \ 32 $(foreach I,$(2),-I$(I)) \
33 -c $(1) -o $(call c_src_to_obj,$(1)) 33 -c $(1) -o $(call c_src_to_obj,$(1))
34 endef 34 endef
@@ -39,6 +39,12 @@ define libcompile @@ -39,6 +39,12 @@ define libcompile
39 $(foreach I,$(2),-I$(I)) \ 39 $(foreach I,$(2),-I$(I)) \
40 -c $(1) -o $(call src_to_obj,$(1)) 40 -c $(1) -o $(call src_to_obj,$(1))
41 endef 41 endef
  42 +define c_libcompile
  43 + $(CC) $(CPPFLAGS) $(CXXFLAGS) -fpic \
  44 + $(call depflags,$(basename $(call c_src_to_lobj,$(1)))) \
  45 + $(foreach I,$(2),-I$(I)) \
  46 + -c $(1) -o $(call c_src_to_obj,$(1))
  47 +endef
42 48
43 49
44 # 1 2 50 # 1 2
@@ -52,7 +58,7 @@ endef @@ -52,7 +58,7 @@ endef
52 # 1 2 3 4 5 58 # 1 2 3 4 5
53 # Usage: $(call makelib,objs,library,current,revision,age) 59 # Usage: $(call makelib,objs,library,current,revision,age)
54 define makelib 60 define makelib
55 - $(RM) $2 61 + $(RM) $(2) $(2).*
56 major=$$(( $(3) - $(5))); \ 62 major=$$(( $(3) - $(5))); \
57 versuffix=$$major.$5.$4; \ 63 versuffix=$$major.$5.$4; \
58 $(CXX) $(CXXFLAGS) -shared -o $(2).$$versuffix $(1) \ 64 $(CXX) $(CXXFLAGS) -shared -o $(2).$$versuffix $(1) \
make/rules.mk
1 include make/$(BUILDRULES).mk 1 include make/$(BUILDRULES).mk
2 2
  3 +define firstelem
  4 +$(word 1,$(subst /, ,$(1)))
  5 +endef
  6 +SPC := $(subst /, ,/)
  7 +define lastelem
  8 +$(subst $(SPC),/,$(word $(words $(subst /, ,$(1))),$(subst /, ,$(1))))
  9 +endef
  10 +define objbase
  11 +$(patsubst %.$(2),%.$(3),$(firstelem)/$(OUTPUT_DIR)/$(lastelem))
  12 +endef
  13 +
3 # Usage: $(call src_to_obj,srcs) 14 # Usage: $(call src_to_obj,srcs)
4 define src_to_obj 15 define src_to_obj
5 -$(foreach F,$(1),$(dir $(F))$(OUTPUT_DIR)/$(patsubst %.cc,%.$(OBJ),$(notdir $(F)))) 16 +$(foreach F,$(1),$(call objbase,$(F),cc,$(OBJ)))
6 endef 17 endef
7 18
8 # Usage: $(call c_src_to_obj,srcs) 19 # Usage: $(call c_src_to_obj,srcs)
9 define c_src_to_obj 20 define c_src_to_obj
10 -$(foreach F,$(1),$(dir $(F))$(OUTPUT_DIR)/$(patsubst %.c,%.$(OBJ),$(notdir $(F)))) 21 +$(foreach F,$(1),$(call objbase,$(F),c,$(OBJ)))
11 endef 22 endef
12 23
13 # Usage: $(call src_to_lobj,srcs) 24 # Usage: $(call src_to_lobj,srcs)
14 define src_to_lobj 25 define src_to_lobj
15 -$(foreach F,$(1),$(dir $(F))$(OUTPUT_DIR)/$(patsubst %.cc,%.$(LOBJ),$(notdir $(F)))) 26 +$(foreach F,$(1),$(call objbase,$(F),cc,$(LOBJ)))
  27 +endef
  28 +
  29 +# Usage: $(call c_src_to_lobj,srcs)
  30 +define c_src_to_lobj
  31 +$(foreach F,$(1),$(call objbase,$(F),c,$(LOBJ)))
16 endef 32 endef
17 33
18 # Usage: $(call obj_to_dep,objs) 34 # Usage: $(call obj_to_dep,objs)