Commit c7be2041b8c97129323a8a7ad6d8da0310d371f1
1 parent
dd66ea81
include external-libs
git-svn-id: svn+q:///qpdf/trunk@761 71b93d88-0707-0410-a8cf-f5a4172ac649
Showing
6 changed files
with
89 additions
and
6 deletions
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
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) |