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 30 # install to install in a separate location. This is useful for
31 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 35 OUTPUT_DIR = build
35 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 1 TARGETS_libqpdf = libqpdf/$(OUTPUT_DIR)/$(call libname,qpdf)
2 2  
  3 +$(TARGETS_libqpdf): $(TARGETS_external-libs)
  4 +
3 5 INCLUDES_libqpdf = include libqpdf
4 6  
5 7 SRCS_libqpdf = \
... ...
make/gcc-linux.mk
... ... @@ -28,7 +28,7 @@ endef
28 28 # Usage: $(call c_compile,src,includes)
29 29 define c_compile
30 30 $(CC) $(CPPFLAGS) $(CFLAGS) \
31   - $(call depflags,$(basename $(call src_to_obj,$(1)))) \
  31 + $(call depflags,$(basename $(call c_src_to_obj,$(1)))) \
32 32 $(foreach I,$(2),-I$(I)) \
33 33 -c $(1) -o $(call c_src_to_obj,$(1))
34 34 endef
... ... @@ -39,6 +39,12 @@ define libcompile
39 39 $(foreach I,$(2),-I$(I)) \
40 40 -c $(1) -o $(call src_to_obj,$(1))
41 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 50 # 1 2
... ... @@ -52,7 +58,7 @@ endef
52 58 # 1 2 3 4 5
53 59 # Usage: $(call makelib,objs,library,current,revision,age)
54 60 define makelib
55   - $(RM) $2
  61 + $(RM) $(2) $(2).*
56 62 major=$$(( $(3) - $(5))); \
57 63 versuffix=$$major.$5.$4; \
58 64 $(CXX) $(CXXFLAGS) -shared -o $(2).$$versuffix $(1) \
... ...
make/rules.mk
1 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 14 # Usage: $(call src_to_obj,srcs)
4 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 17 endef
7 18  
8 19 # Usage: $(call c_src_to_obj,srcs)
9 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 22 endef
12 23  
13 24 # Usage: $(call src_to_lobj,srcs)
14 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 32 endef
17 33  
18 34 # Usage: $(call obj_to_dep,objs)
... ...