Commit 2b5ac676ed1cbde1092d41acf0775b1c8d9a2baf
1 parent
9e05a15d
generalize build
git-svn-id: svn+q:///qpdf/trunk@776 71b93d88-0707-0410-a8cf-f5a4172ac649
Showing
10 changed files
with
44 additions
and
46 deletions
examples/build.mk
| @@ -31,4 +31,4 @@ $(foreach B,$(CBINS_examples),$(eval \ | @@ -31,4 +31,4 @@ $(foreach B,$(CBINS_examples),$(eval \ | ||
| 31 | 31 | ||
| 32 | $(foreach B,$(BINS_examples) $(CBINS_examples),$(eval \ | 32 | $(foreach B,$(BINS_examples) $(CBINS_examples),$(eval \ |
| 33 | examples/$(OUTPUT_DIR)/$(call binname,$(B)): $(OBJS_$(B)) ; \ | 33 | examples/$(OUTPUT_DIR)/$(call binname,$(B)): $(OBJS_$(B)) ; \ |
| 34 | - $(call makebin,$(OBJS_$(B)),$$@))) | 34 | + $(call makebin,$(OBJS_$(B)),$$@,$(LDFLAGS) $(LDFLAGS_libqpdf),$(LIBS) $(LIBS_libqpdf)))) |
external-libs/build.mk
| @@ -54,6 +54,5 @@ OBJS_dftables = $(call c_src_to_obj,external-libs/pcre/dftables.c) | @@ -54,6 +54,5 @@ OBJS_dftables = $(call c_src_to_obj,external-libs/pcre/dftables.c) | ||
| 54 | $(OBJS_dftables): external-libs/pcre/dftables.c | 54 | $(OBJS_dftables): external-libs/pcre/dftables.c |
| 55 | $(call c_compile,$<,) | 55 | $(call c_compile,$<,) |
| 56 | 56 | ||
| 57 | -external-libs/$(OUTPUT_DIR)/$(call binname,dftables): LIBS= | ||
| 58 | external-libs/$(OUTPUT_DIR)/$(call binname,dftables): $(OBJS_dftables) | 57 | external-libs/$(OUTPUT_DIR)/$(call binname,dftables): $(OBJS_dftables) |
| 59 | - $(call makebin,$(OBJS_dftables),$@) | 58 | + $(call makebin,$(OBJS_dftables),$@,,) |
libqpdf/build.mk
| @@ -3,6 +3,8 @@ TARGETS_libqpdf = libqpdf/$(OUTPUT_DIR)/$(call libname,qpdf) | @@ -3,6 +3,8 @@ TARGETS_libqpdf = libqpdf/$(OUTPUT_DIR)/$(call libname,qpdf) | ||
| 3 | $(TARGETS_libqpdf): $(TARGETS_external-libs) | 3 | $(TARGETS_libqpdf): $(TARGETS_external-libs) |
| 4 | 4 | ||
| 5 | INCLUDES_libqpdf = include libqpdf $(INCLUDES_external-libs) | 5 | INCLUDES_libqpdf = include libqpdf $(INCLUDES_external-libs) |
| 6 | +LDFLAGS_libqpdf = -Llibqpdf/$(OUTPUT_DIR) | ||
| 7 | +LIBS_libqpdf = -lqpdf | ||
| 6 | 8 | ||
| 7 | SRCS_libqpdf = \ | 9 | SRCS_libqpdf = \ |
| 8 | libqpdf/BitStream.cc \ | 10 | libqpdf/BitStream.cc \ |
| @@ -70,4 +72,4 @@ $(OBJS_libqpdf): libqpdf/$(OUTPUT_DIR)/%.$(LOBJ): libqpdf/%.cc | @@ -70,4 +72,4 @@ $(OBJS_libqpdf): libqpdf/$(OUTPUT_DIR)/%.$(LOBJ): libqpdf/%.cc | ||
| 70 | # * Otherwise, increment REVISION | 72 | # * Otherwise, increment REVISION |
| 71 | 73 | ||
| 72 | $(TARGETS_libqpdf): $(OBJS_libqpdf) | 74 | $(TARGETS_libqpdf): $(OBJS_libqpdf) |
| 73 | - $(call makelib,$(OBJS_libqpdf),$@,3,0,0) | 75 | + $(call makelib,$(OBJS_libqpdf),$@,$(LDFLAGS),$(LIBS),3,0,0) |
libtests/build.mk
| @@ -36,4 +36,4 @@ $(foreach B,$(BINS_libtests),$(eval \ | @@ -36,4 +36,4 @@ $(foreach B,$(BINS_libtests),$(eval \ | ||
| 36 | 36 | ||
| 37 | $(foreach B,$(BINS_libtests),$(eval \ | 37 | $(foreach B,$(BINS_libtests),$(eval \ |
| 38 | libtests/$(OUTPUT_DIR)/$(call binname,$(B)): $(OBJS_$(B)) ; \ | 38 | libtests/$(OUTPUT_DIR)/$(call binname,$(B)): $(OBJS_$(B)) ; \ |
| 39 | - $(call makebin,$(OBJS_$(B)),$$@))) | 39 | + $(call makebin,$(OBJS_$(B)),$$@,$(LDFLAGS) $(LDFLAGS_libqpdf),$(LIBS) $(LIBS_libqpdf)))) |
make/gcc-linux.mk
| @@ -62,22 +62,21 @@ define makeslib | @@ -62,22 +62,21 @@ define makeslib | ||
| 62 | $(RANLIB) $(2) | 62 | $(RANLIB) $(2) |
| 63 | endef | 63 | endef |
| 64 | 64 | ||
| 65 | -# 1 2 3 4 5 | ||
| 66 | -# Usage: $(call makelib,objs,library,current,revision,age) | 65 | +# 1 2 3 4 5 6 7 |
| 66 | +# Usage: $(call makelib,objs,library,ldflags,libs,current,revision,age) | ||
| 67 | define makelib | 67 | define makelib |
| 68 | $(RM) $(2) $(2).* | 68 | $(RM) $(2) $(2).* |
| 69 | - major=$$(( $(3) - $(5))); \ | ||
| 70 | - versuffix=$$major.$5.$4; \ | 69 | + major=$$(( $(5) - $(7))); \ |
| 70 | + versuffix=$$major.$(7).$(6); \ | ||
| 71 | $(CXX) $(CXXFLAGS) -shared -o $(2).$$versuffix $(1) \ | 71 | $(CXX) $(CXXFLAGS) -shared -o $(2).$$versuffix $(1) \ |
| 72 | -Wl,--soname -Wl,`basename $(2)`.$$major \ | 72 | -Wl,--soname -Wl,`basename $(2)`.$$major \ |
| 73 | - $(LDFLAGS) $(LIBS); \ | 73 | + $(3) $(4); \ |
| 74 | ln -s `basename $(2)`.$$versuffix $(2); \ | 74 | ln -s `basename $(2)`.$$versuffix $(2); \ |
| 75 | ln -s `basename $(2)`.$$versuffix $(2).$$major | 75 | ln -s `basename $(2)`.$$versuffix $(2).$$major |
| 76 | endef | 76 | endef |
| 77 | 77 | ||
| 78 | -# 1 2 | ||
| 79 | -# Usage: $(call makebin,objs,binary) | 78 | +# 1 2 3 4 |
| 79 | +# Usage: $(call makebin,objs,binary,ldflags,libs) | ||
| 80 | define makebin | 80 | define makebin |
| 81 | - $(CXX) $(CXXFLAGS) $(1) -o $(2) $(LDFLAGS) \ | ||
| 82 | - -Llibqpdf/$(OUTPUT_DIR) -lqpdf $(LIBS) | 81 | + $(CXX) $(CXXFLAGS) $(1) -o $(2) $(LDFLAGS) $(3) $(4) |
| 83 | endef | 82 | endef |
make/libtool.mk
| @@ -76,18 +76,16 @@ define makeslib | @@ -76,18 +76,16 @@ define makeslib | ||
| 76 | $(RANLIB) $(2) | 76 | $(RANLIB) $(2) |
| 77 | endef | 77 | endef |
| 78 | 78 | ||
| 79 | -# 1 2 3 4 5 | ||
| 80 | -# Usage: $(call makelib,objs,library,current,revision,age) | 79 | +# 1 2 3 4 5 6 7 |
| 80 | +# Usage: $(call makelib,objs,library,ldflags,libs,current,revision,age) | ||
| 81 | define makelib | 81 | define makelib |
| 82 | $(LIBTOOL) --mode=link \ | 82 | $(LIBTOOL) --mode=link \ |
| 83 | - $(CXX) $(CXXFLAGS) -o $(2) $(1) $(LDFLAGS) $(LIBS) \ | ||
| 84 | - -rpath $(libdir) -version-info $(3):$(4):$(5) | 83 | + $(CXX) $(CXXFLAGS) -o $(2) $(1) $(3) $(4) \ |
| 84 | + -rpath $(libdir) -version-info $(5):$(6):$(7) | ||
| 85 | endef | 85 | endef |
| 86 | 86 | ||
| 87 | -# 1 2 | ||
| 88 | -# Usage: $(call makebin,objs,binary) | 87 | +# 1 2 3 4 |
| 88 | +# Usage: $(call makebin,objs,binary,ldflags,libs) | ||
| 89 | define makebin | 89 | define makebin |
| 90 | - $(LIBTOOL) --mode=link \ | ||
| 91 | - $(CXX) $(CXXFLAGS) $(1) -o $(2) $(LDFLAGS) \ | ||
| 92 | - -Llibqpdf/$(OUTPUT_DIR) -lqpdf $(LIBS) | 90 | + $(LIBTOOL) --mode=link $(CXX) $(CXXFLAGS) $(1) -o $(2) $(3) $(4) |
| 93 | endef | 91 | endef |
make/mingw.mk
| @@ -44,17 +44,16 @@ define makeslib | @@ -44,17 +44,16 @@ define makeslib | ||
| 44 | $(RANLIB) $(2) | 44 | $(RANLIB) $(2) |
| 45 | endef | 45 | endef |
| 46 | 46 | ||
| 47 | -# 1 2 3 4 5 | ||
| 48 | -# Usage: $(call makelib,objs,library,current,revision,age) | 47 | +# 1 2 3 4 5 6 7 |
| 48 | +# Usage: $(call makelib,objs,library,ldflags,libs,current,revision,age) | ||
| 49 | define makelib | 49 | define makelib |
| 50 | - dlltool -l $(2) -D $$(basename `echo $(2) | sed -e 's,/lib\(.*\).a,/\1,'`$(3).dll) $(1); \ | ||
| 51 | - $(CXX) -shared -o `echo $(2) | sed -e 's,/lib\(.*\).a,/\1,'`$(3).dll \ | ||
| 52 | - $(1) $(LDFLAGS) $(LIBS) | 50 | + dlltool -l $(2) -D $$(basename `echo $(2) | sed -e 's,/lib\(.*\).a,/\1,'`$(5).dll) $(1); \ |
| 51 | + $(CXX) -shared -o `echo $(2) | sed -e 's,/lib\(.*\).a,/\1,'`$(5).dll \ | ||
| 52 | + $(1) $(3) $(4) | ||
| 53 | endef | 53 | endef |
| 54 | 54 | ||
| 55 | -# 1 2 | ||
| 56 | -# Usage: $(call makebin,objs,binary) | 55 | +# 1 2 3 4 |
| 56 | +# Usage: $(call makebin,objs,binary,ldflags,libs) | ||
| 57 | define makebin | 57 | define makebin |
| 58 | - $(CXX) $(CXXFLAGS) $(1) -o $(2) $(LDFLAGS) \ | ||
| 59 | - -Llibqpdf/$(OUTPUT_DIR) -lqpdf $(LIBS) | 58 | + $(CXX) $(CXXFLAGS) $(1) -o $(2) $(3) $(4) |
| 60 | endef | 59 | endef |
make/msvc.mk
| @@ -40,26 +40,27 @@ define makeslib | @@ -40,26 +40,27 @@ define makeslib | ||
| 40 | lib /nologo /OUT:$(2) $(1) | 40 | lib /nologo /OUT:$(2) $(1) |
| 41 | endef | 41 | endef |
| 42 | 42 | ||
| 43 | -# 1 2 3 4 5 | ||
| 44 | -# Usage: $(call makelib,objs,library,current,revision,age) | 43 | +# 1 2 3 4 5 6 7 |
| 44 | +# Usage: $(call makelib,objs,library,ldflags,libs,current,revision,age) | ||
| 45 | define makelib | 45 | define makelib |
| 46 | - cl /nologo /Zi /Gy /EHsc /MD /LD /Fe$(basename $(2))$(3).dll $(1) \ | 46 | + cl /nologo /Zi /Gy /EHsc /MD /LD /Fe$(basename $(2))$(5).dll $(1) \ |
| 47 | /link /incremental:no \ | 47 | /link /incremental:no \ |
| 48 | - $(foreach L,$(subst -L,,$(LDFLAGS)),/LIBPATH:$(L)) \ | ||
| 49 | - $(foreach L,$(subst -l,,$(LIBS)),$(L).lib) | ||
| 50 | - if [ -f $(basename $(2))$(3).dll.manifest ]; then \ | ||
| 51 | - mt.exe -nologo -manifest $(basename $(2))$(3).dll.manifest \ | ||
| 52 | - -outputresource:$(basename $(2))$(3).dll\;2; \ | 48 | + $(foreach L,$(subst -L,,$(3)),/LIBPATH:$(L)) \ |
| 49 | + $(foreach L,$(subst -l,,$(4)),$(L).lib) | ||
| 50 | + if [ -f $(basename $(2))$(5).dll.manifest ]; then \ | ||
| 51 | + mt.exe -nologo -manifest $(basename $(2))$(5).dll.manifest \ | ||
| 52 | + -outputresource:$(basename $(2))$(5).dll\;2; \ | ||
| 53 | fi | 53 | fi |
| 54 | + mv $(2)$(5).lib $(2).lib | ||
| 54 | endef | 55 | endef |
| 55 | 56 | ||
| 56 | -# 1 2 | ||
| 57 | -# Usage: $(call makebin,objs,binary) | 57 | +# 1 2 3 4 |
| 58 | +# Usage: $(call makebin,objs,binary,ldflags,libs) | ||
| 58 | define makebin | 59 | define makebin |
| 59 | cl /nologo /Zi /Gy /EHsc /MD $(1) \ | 60 | cl /nologo /Zi /Gy /EHsc /MD $(1) \ |
| 60 | /link /incremental:no /OUT:$(2) \ | 61 | /link /incremental:no /OUT:$(2) \ |
| 61 | - $(foreach L,$(subst -L,,$(LDFLAGS)),/LIBPATH:$(L)) \ | ||
| 62 | - $(foreach L,$(subst -l,,$(LIBS)),$(L).lib) | 62 | + $(foreach L,$(subst -L,,$(3)),/LIBPATH:$(L)) \ |
| 63 | + $(foreach L,$(subst -l,,$(4)),$(L).lib) | ||
| 63 | if [ -f $(2).manifest ]; then \ | 64 | if [ -f $(2).manifest ]; then \ |
| 64 | mt.exe -nologo -manifest $(2).manifest \ | 65 | mt.exe -nologo -manifest $(2).manifest \ |
| 65 | -outputresource:$(2)\;2; \ | 66 | -outputresource:$(2)\;2; \ |
qpdf/build.mk
| @@ -30,4 +30,4 @@ $(foreach B,$(CBINS_qpdf),$(eval \ | @@ -30,4 +30,4 @@ $(foreach B,$(CBINS_qpdf),$(eval \ | ||
| 30 | 30 | ||
| 31 | $(foreach B,$(BINS_qpdf) $(CBINS_qpdf),$(eval \ | 31 | $(foreach B,$(BINS_qpdf) $(CBINS_qpdf),$(eval \ |
| 32 | qpdf/$(OUTPUT_DIR)/$(call binname,$(B)): $(OBJS_$(B)) ; \ | 32 | qpdf/$(OUTPUT_DIR)/$(call binname,$(B)): $(OBJS_$(B)) ; \ |
| 33 | - $(call makebin,$(OBJS_$(B)),$$@))) | 33 | + $(call makebin,$(OBJS_$(B)),$$@,$(LDFLAGS) $(LDFLAGS_libqpdf),$(LIBS) $(LIBS_libqpdf)))) |
zlib-flate/build.mk
| @@ -19,4 +19,4 @@ $(OBJS_zlib-flate): zlib-flate/$(OUTPUT_DIR)/%.$(OBJ): zlib-flate/%.cc | @@ -19,4 +19,4 @@ $(OBJS_zlib-flate): zlib-flate/$(OUTPUT_DIR)/%.$(OBJ): zlib-flate/%.cc | ||
| 19 | $(call compile,$<,$(INCLUDES_zlib-flate)) | 19 | $(call compile,$<,$(INCLUDES_zlib-flate)) |
| 20 | 20 | ||
| 21 | zlib-flate/$(OUTPUT_DIR)/$(call binname,zlib-flate): $(OBJS_zlib-flate) | 21 | zlib-flate/$(OUTPUT_DIR)/$(call binname,zlib-flate): $(OBJS_zlib-flate) |
| 22 | - $(call makebin,$(OBJS_zlib-flate),$@) | 22 | + $(call makebin,$(OBJS_zlib-flate),$@,$(LDFLAGS) $(LDFLAGS_libqpdf),$(LIBS) $(LIBS_libqpdf)) |